public static com.liferay.portlet.dynamicdatamapping.model.DDMStructureSoap[] getStructures(
      long[] groupIds, long classNameId, int start, int end) throws RemoteException {
    try {
      java.util.List<com.liferay.portlet.dynamicdatamapping.model.DDMStructure> returnValue =
          DDMStructureServiceUtil.getStructures(groupIds, classNameId, start, end);

      return com.liferay.portlet.dynamicdatamapping.model.DDMStructureSoap.toSoapModels(
          returnValue);
    } catch (Exception e) {
      _log.error(e, e);

      throw new RemoteException(e.getMessage());
    }
  }
  public static com.liferay.portlet.dynamicdatamapping.model.DDMStructureSoap[]
      getJournalFolderStructures(long[] groupIds, long journalFolderId, int restrictionType)
          throws RemoteException {
    try {
      java.util.List<com.liferay.portlet.dynamicdatamapping.model.DDMStructure> returnValue =
          DDMStructureServiceUtil.getJournalFolderStructures(
              groupIds, journalFolderId, restrictionType);

      return com.liferay.portlet.dynamicdatamapping.model.DDMStructureSoap.toSoapModels(
          returnValue);
    } catch (Exception e) {
      _log.error(e, e);

      throw new RemoteException(e.getMessage());
    }
  }
  /**
   * Returns an ordered range of all the structures matching the groups and class name IDs, and
   * matching the keywords in the structure names and descriptions.
   *
   * <p>Useful when paginating results. Returns a maximum of <code>end -
   * start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are
   * indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting
   * both <code>start</code> and <code>end</code> to {@link
   * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set.
   *
   * @param companyId the primary key of the structure's company
   * @param groupIds the primary keys of the groups
   * @param classNameIds the primary keys of the class names of the models the structures are
   *     related to
   * @param keywords the keywords (space separated), which may occur in the structure's name or
   *     description (optionally <code>null</code>)
   * @param start the lower bound of the range of structures to return
   * @param end the upper bound of the range of structures to return (not inclusive)
   * @param orderByComparator the comparator to order the structures (optionally <code>null</code>)
   * @return the range of matching structures ordered by the comparator
   * @throws SystemException if a system exception occurred
   */
  public static com.liferay.portlet.dynamicdatamapping.model.DDMStructureSoap[] search(
      long companyId,
      long[] groupIds,
      long[] classNameIds,
      java.lang.String keywords,
      int start,
      int end,
      com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
      throws RemoteException {
    try {
      java.util.List<com.liferay.portlet.dynamicdatamapping.model.DDMStructure> returnValue =
          DDMStructureServiceUtil.search(
              companyId, groupIds, classNameIds, keywords, start, end, orderByComparator);

      return com.liferay.portlet.dynamicdatamapping.model.DDMStructureSoap.toSoapModels(
          returnValue);
    } catch (Exception e) {
      _log.error(e, e);

      throw new RemoteException(e.getMessage());
    }
  }