All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.liferay.dynamic.data.mapping.service.impl.DDMTemplateServiceImpl Maven / Gradle / Ivy

/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.dynamic.data.mapping.service.impl;

import com.liferay.dynamic.data.mapping.model.DDMTemplate;
import com.liferay.dynamic.data.mapping.service.base.DDMTemplateServiceBaseImpl;
import com.liferay.dynamic.data.mapping.service.permission.DDMTemplatePermission;
import com.liferay.portal.kernel.dao.orm.QueryUtil;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.security.permission.ActionKeys;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.util.OrderByComparator;
import com.liferay.portal.kernel.util.PortalUtil;

import java.io.File;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;

/**
 * Provides the remote service for accessing, adding, copying, deleting, and
 * updating dynamic data mapping (DDM) templates. Its methods include security
 * checks.
 *
 * @author Brian Wing Shun Chan
 * @author Eduardo Lundgren
 * @author Marcellus Tavares
 * @see    com.liferay.dynamic.data.mapping.service.impl.DDMTemplateLocalServiceImpl
 */
public class DDMTemplateServiceImpl extends DDMTemplateServiceBaseImpl {

	/**
	 * Adds a template.
	 *
	 * @param  groupId the primary key of the group
	 * @param  classNameId the primary key of the class name for template's
	 *         related model
	 * @param  classPK the primary key of the template's related entity
	 * @param  resourceClassNameId the primary key of the class name for
	 *         template's resource model
	 * @param  nameMap the template's locales and localized names
	 * @param  descriptionMap the template's locales and localized descriptions
	 * @param  type the template's type. For more information, see
	 *         DDMTemplateConstants in the dynamic-data-mapping-api module.
	 * @param  mode the template's mode. For more information, see
	 *         DDMTemplateConstants in the dynamic-data-mapping-api module.
	 * @param  language the template's script language. For more information,
	 *         see DDMTemplateConstants in the dynamic-data-mapping-api module.
	 * @param  script the template's script
	 * @param  serviceContext the service context to be applied. Must have the
	 *         ddmResource attribute to check permissions. Can set
	 *         the UUID, creation date, modification date, guest permissions,
	 *         and group permissions for the template.
	 * @return the template
	 */
	@Override
	public DDMTemplate addTemplate(
			long groupId, long classNameId, long classPK,
			long resourceClassNameId, Map nameMap,
			Map descriptionMap, String type, String mode,
			String language, String script, ServiceContext serviceContext)
		throws PortalException {

		DDMTemplatePermission.checkAddTemplatePermission(
			getPermissionChecker(), groupId, classNameId, resourceClassNameId);

		return ddmTemplateLocalService.addTemplate(
			getUserId(), groupId, classNameId, classPK, resourceClassNameId,
			null, nameMap, descriptionMap, type, mode, language, script, false,
			false, null, null, serviceContext);
	}

	/**
	 * Adds a template with additional parameters.
	 *
	 * @param  groupId the primary key of the group
	 * @param  classNameId the primary key of the class name for template's
	 *         related model
	 * @param  classPK the primary key of the template's related entity
	 * @param  resourceClassNameId the primary key of the class name for
	 *         template's resource model
	 * @param  templateKey the unique string identifying the template
	 *         (optionally null)
	 * @param  nameMap the template's locales and localized names
	 * @param  descriptionMap the template's locales and localized descriptions
	 * @param  type the template's type. For more information, see
	 *         DDMTemplateConstants in the dynamic-data-mapping-api module.
	 * @param  mode the template's mode. For more information, see
	 *         DDMTemplateConstants in the dynamic-data-mapping-api module.
	 * @param  language the template's script language. For more information,
	 *         see DDMTemplateConstants in the dynamic-data-mapping-api module.
	 * @param  script the template's script
	 * @param  cacheable whether the template is cacheable
	 * @param  smallImage whether the template has a small image
	 * @param  smallImageURL the template's small image URL (optionally
	 *         null)
	 * @param  smallImageFile the template's small image file (optionally
	 *         null)
	 * @param  serviceContext the service context to be applied. Must have the
	 *         ddmResource attribute to check permissions. Can set
	 *         the UUID, creation date, modification date, guest permissions,
	 *         and group permissions for the template.
	 * @return the template
	 */
	@Override
	public DDMTemplate addTemplate(
			long groupId, long classNameId, long classPK,
			long resourceClassNameId, String templateKey,
			Map nameMap, Map descriptionMap,
			String type, String mode, String language, String script,
			boolean cacheable, boolean smallImage, String smallImageURL,
			File smallImageFile, ServiceContext serviceContext)
		throws PortalException {

		DDMTemplatePermission.checkAddTemplatePermission(
			getPermissionChecker(), groupId, classNameId, resourceClassNameId);

		return ddmTemplateLocalService.addTemplate(
			getUserId(), groupId, classNameId, classPK, resourceClassNameId,
			templateKey, nameMap, descriptionMap, type, mode, language, script,
			cacheable, smallImage, smallImageURL, smallImageFile,
			serviceContext);
	}

	/**
	 * Copies the template, creating a new template with all the values
	 * extracted from the original one. This method supports defining a new name
	 * and description.
	 *
	 * @param  templateId the primary key of the template to be copied
	 * @param  nameMap the new template's locales and localized names
	 * @param  descriptionMap the new template's locales and localized
	 *         descriptions
	 * @param  serviceContext the service context to be applied. Must have the
	 *         ddmResource attribute to check permissions. Can set
	 *         the UUID, creation date, modification date, guest permissions,
	 *         and group permissions for the template.
	 * @return the new template
	 */
	@Override
	public DDMTemplate copyTemplate(
			long templateId, Map nameMap,
			Map descriptionMap, ServiceContext serviceContext)
		throws PortalException {

		DDMTemplate template = ddmTemplatePersistence.findByPrimaryKey(
			templateId);

		DDMTemplatePermission.checkAddTemplatePermission(
			getPermissionChecker(), serviceContext.getScopeGroupId(),
			template.getClassNameId(), template.getResourceClassNameId());

		return ddmTemplateLocalService.copyTemplate(
			getUserId(), templateId, nameMap, descriptionMap, serviceContext);
	}

	@Override
	public DDMTemplate copyTemplate(
			long templateId, ServiceContext serviceContext)
		throws PortalException {

		DDMTemplate template = ddmTemplatePersistence.findByPrimaryKey(
			templateId);

		DDMTemplatePermission.checkAddTemplatePermission(
			getPermissionChecker(), serviceContext.getScopeGroupId(),
			template.getClassNameId(), template.getResourceClassNameId());

		return ddmTemplateLocalService.copyTemplate(
			getUserId(), templateId, serviceContext);
	}

	/**
	 * Copies all the templates matching the class name ID, class PK, and type.
	 * This method creates new templates, extracting all the values from the old
	 * ones and updating their class PKs.
	 *
	 * @param  classNameId the primary key of the class name for template's
	 *         related model
	 * @param  oldClassPK the primary key of the old template's related entity
	 * @param  resourceClassNameId the primary key of the class name for
	 *         template's resource model
	 * @param  newClassPK the primary key of the new template's related entity
	 * @param  type the template's type. For more information, see
	 *         DDMTemplateConstants in the dynamic-data-mapping-api module.
	 * @param  serviceContext the service context to be applied. Must have the
	 *         ddmResource attribute to check permissions. Can set
	 *         the UUID, creation date, modification date, guest permissions,
	 *         and group permissions for the template.
	 * @return the new template
	 */
	@Override
	public List copyTemplates(
			long classNameId, long oldClassPK, long resourceClassNameId,
			long newClassPK, String type, ServiceContext serviceContext)
		throws PortalException {

		DDMTemplatePermission.checkAddTemplatePermission(
			getPermissionChecker(), serviceContext.getScopeGroupId(),
			classNameId, resourceClassNameId);

		return ddmTemplateLocalService.copyTemplates(
			getUserId(), classNameId, oldClassPK, newClassPK, type,
			serviceContext);
	}

	/**
	 * Deletes the template and its resources.
	 *
	 * @param templateId the primary key of the template to be deleted
	 */
	@Override
	public void deleteTemplate(long templateId) throws PortalException {
		DDMTemplatePermission.check(
			getPermissionChecker(), templateId, ActionKeys.DELETE);

		ddmTemplateLocalService.deleteTemplate(templateId);
	}

	/**
	 * Returns the template matching the group and template key.
	 *
	 * @param  groupId the primary key of the group
	 * @param  classNameId the primary key of the class name for template's
	 *         related model
	 * @param  templateKey the unique string identifying the template
	 * @return the matching template, or null if a matching
	 *         template could not be found
	 */
	@Override
	public DDMTemplate fetchTemplate(
			long groupId, long classNameId, String templateKey)
		throws PortalException {

		DDMTemplate ddmTemplate = ddmTemplateLocalService.fetchTemplate(
			groupId, classNameId, templateKey);

		if (ddmTemplate != null) {
			DDMTemplatePermission.check(
				getPermissionChecker(), ddmTemplate, ActionKeys.VIEW);
		}

		return ddmTemplate;
	}

	/**
	 * Returns the template with the ID.
	 *
	 * @param  templateId the primary key of the template
	 * @return the template with the ID
	 */
	@Override
	public DDMTemplate getTemplate(long templateId) throws PortalException {
		DDMTemplatePermission.check(
			getPermissionChecker(), templateId, ActionKeys.VIEW);

		return ddmTemplatePersistence.findByPrimaryKey(templateId);
	}

	/**
	 * Returns the template matching the group and template key.
	 *
	 * @param  groupId the primary key of the group
	 * @param  classNameId the primary key of the class name for template's
	 *         related model
	 * @param  templateKey the unique string identifying the template
	 * @return the matching template
	 */
	@Override
	public DDMTemplate getTemplate(
			long groupId, long classNameId, String templateKey)
		throws PortalException {

		DDMTemplate ddmTemplate = ddmTemplateLocalService.getTemplate(
			groupId, classNameId, templateKey);

		DDMTemplatePermission.check(
			getPermissionChecker(), ddmTemplate, ActionKeys.VIEW);

		return ddmTemplate;
	}

	/**
	 * Returns the template matching the group and template key, optionally
	 * searching ancestor sites (that have sharing enabled) and global scoped
	 * sites.
	 *
	 * 

* This method first searches in the group. If the template is still not * found and includeAncestorTemplates is set to * true, this method searches the group's ancestor sites (that * have sharing enabled) and lastly searches global scoped sites. *

* * @param groupId the primary key of the group * @param classNameId the primary key of the class name for template's * related model * @param templateKey the unique string identifying the template * @param includeAncestorTemplates whether to include ancestor sites (that * have sharing enabled) and include global scoped sites in the * search * @return the matching template */ @Override public DDMTemplate getTemplate( long groupId, long classNameId, String templateKey, boolean includeAncestorTemplates) throws PortalException { DDMTemplate ddmTemplate = ddmTemplateLocalService.getTemplate( groupId, classNameId, templateKey, includeAncestorTemplates); DDMTemplatePermission.check( getPermissionChecker(), ddmTemplate, ActionKeys.VIEW); return ddmTemplate; } @Override public List getTemplates( long companyId, long groupId, long classNameId, long resourceClassNameId, int status) { return getTemplates( companyId, new long[] {groupId}, classNameId, 0, resourceClassNameId, null, null, status); } @Override public List getTemplates( long companyId, long groupId, long classNameId, long classPK, long resourceClassNameId, boolean includeAncestorTemplates, int status) throws PortalException { List ddmTemplates = new ArrayList<>(); ddmTemplates.addAll( getTemplates( companyId, new long[] {groupId}, classNameId, classPK, resourceClassNameId, null, null, status)); if (!includeAncestorTemplates) { return ddmTemplates; } ddmTemplates.addAll( getTemplates( companyId, PortalUtil.getAncestorSiteGroupIds(groupId), classNameId, classPK, resourceClassNameId, null, null, status)); return ddmTemplates; } @Override public List getTemplates( long companyId, long groupId, long classNameId, long classPK, long resourceClassNameId, int status) { return getTemplates( companyId, new long[] {groupId}, classNameId, classPK, resourceClassNameId, null, null, status); } /** * Returns all the templates matching the group, class name ID, class PK, * resource class name ID, and type. * * @param companyId the primary key of the template's company * @param groupId the primary key of the group * @param classNameId the primary key of the class name for the template's * related model * @param classPK the primary key of the template's related entity * @param resourceClassNameId the primary key of the class name for the * template's resource model * @param type the template's type. For more information, see * DDMTemplateConstants in the dynamic-data-mapping-api module. * @return the matching templates */ @Override public List getTemplates( long companyId, long groupId, long classNameId, long classPK, long resourceClassNameId, String type, int status) { return getTemplates( companyId, new long[] {groupId}, classNameId, classPK, resourceClassNameId, type, null, status); } @Override public List getTemplates( long companyId, long groupId, long classNameId, long classPK, long resourceClassNameId, String type, String mode, int status) { return getTemplates( companyId, new long[] {groupId}, classNameId, classPK, resourceClassNameId, type, mode, status); } /** * Returns all the templates matching the group, class PK, and resource * class name ID. * * @param companyId the primary key of the template's company * @param groupId the primary key of the group * @param classPK the primary key of the template's related entity * @param resourceClassNameId the primary key of the class name for the * template's resource model * @return the matching templates */ @Override public List getTemplatesByClassPK( long companyId, long groupId, long classPK, long resourceClassNameId, int status) { return getTemplates( companyId, new long[] {groupId}, 0, classPK, resourceClassNameId, null, null, status); } /** * Returns an ordered range of all the templates matching the group and * structure class name ID and all the generic templates matching the group. * *

* Useful when paginating results. Returns a maximum of end - * start instances. start and end are not * primary keys, they are indexes in the result set. Thus, 0 * refers to the first result in the set. Setting both start * and end to {@link QueryUtil#ALL_POS} will return the full * result set. *

* * @param groupId the primary key of the group * @param structureClassNameId the primary key of the class name for the * template's related structure (optionally 0). Specify * 0 to return generic templates only. * @param start the lower bound of the range of templates to return * @param end the upper bound of the range of templates to return (not * inclusive) * @param orderByComparator the comparator to order the templates * (optionally null) * @return the range of matching templates ordered by the comparator */ @Override public List getTemplatesByStructureClassNameId( long groupId, long structureClassNameId, int status, int start, int end, OrderByComparator orderByComparator) { return ddmTemplateFinder.filterFindByG_SC_S( groupId, structureClassNameId, status, start, end, orderByComparator); } /** * Returns the number of templates matching the group and structure class * name ID plus the number of generic templates matching the group. * * @param groupId the primary key of the group * @param structureClassNameId the primary key of the class name for the * template's related structure (optionally 0). Specify * 0 to count generic templates only. * @return the number of matching templates plus the number of matching * generic templates */ @Override public int getTemplatesByStructureClassNameIdCount( long groupId, long structureClassNameId, int status) { return ddmTemplateFinder.filterCountByG_SC_S( groupId, structureClassNameId, status); } @Override public void revertTemplate( long templateId, String version, ServiceContext serviceContext) throws PortalException { DDMTemplatePermission.check( getPermissionChecker(), templateId, ActionKeys.UPDATE); ddmTemplateLocalService.revertTemplate( getUserId(), templateId, version, serviceContext); } /** * Returns an ordered range of all the templates matching the group, class * name ID, class PK, type, and mode, and matching the keywords in the * template names and descriptions. * *

* Useful when paginating results. Returns a maximum of end - * start instances. start and end are not * primary keys, they are indexes in the result set. Thus, 0 * refers to the first result in the set. Setting both start * and end to {@link QueryUtil#ALL_POS} will return the full * result set. *

* * @param companyId the primary key of the template's company * @param groupId the primary key of the group * @param classNameId the primary key of the class name for template's * related model * @param classPK the primary key of the template's related entity * @param resourceClassNameId the primary key of the class name for * template's resource model * @param keywords the keywords (space separated), which may occur in the * template's name or description (optionally null) * @param type the template's type (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param mode the template's mode (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param start the lower bound of the range of templates to return * @param end the upper bound of the range of templates to return (not * inclusive) * @param orderByComparator the comparator to order the templates * (optionally null) * @return the matching templates ordered by the comparator */ @Override public List search( long companyId, long groupId, long classNameId, long classPK, long resourceClassNameId, String keywords, String type, String mode, int status, int start, int end, OrderByComparator orderByComparator) { return ddmTemplateFinder.filterFindByKeywords( companyId, groupId, classNameId, classPK, resourceClassNameId, keywords, type, mode, status, start, end, orderByComparator); } /** * Returns an ordered range of all the templates matching the group, class * name ID, class PK, name keyword, description keyword, type, mode, and * language. * *

* Useful when paginating results. Returns a maximum of end - * start instances. start and end are not * primary keys, they are indexes in the result set. Thus, 0 * refers to the first result in the set. Setting both start * and end to {@link QueryUtil#ALL_POS} will return the full * result set. *

* * @param companyId the primary key of the template's company * @param groupId the primary key of the group * @param classNameId the primary key of the class name for template's * related model * @param classPK the primary key of the template's related entity * @param resourceClassNameId the primary key of the class name for * template's resource model * @param name the name keywords (optionally null) * @param description the description keywords (optionally * null) * @param type the template's type (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param mode the template's mode (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param language the template's script language (optionally * null). For more information, see * DDMTemplateConstants in the dynamic-data-mapping-api module. * @param andOperator whether every field must match its keywords, or just * one field. * @param start the lower bound of the range of templates to return * @param end the upper bound of the range of templates to return (not * inclusive) * @param orderByComparator the comparator to order the templates * (optionally null) * @return the matching templates ordered by the comparator */ @Override public List search( long companyId, long groupId, long classNameId, long classPK, long resourceClassNameId, String name, String description, String type, String mode, String language, int status, boolean andOperator, int start, int end, OrderByComparator orderByComparator) { return ddmTemplateFinder.filterFindByC_G_C_C_R_N_D_T_M_L_S( companyId, groupId, classNameId, classPK, resourceClassNameId, name, description, type, mode, language, status, andOperator, start, end, orderByComparator); } /** * Returns an ordered range of all the templates matching the group IDs, * class name IDs, class PK, type, and mode, and matching the keywords in * the template names and descriptions. * *

* Useful when paginating results. Returns a maximum of end - * start instances. start and end are not * primary keys, they are indexes in the result set. Thus, 0 * refers to the first result in the set. Setting both start * and end to {@link QueryUtil#ALL_POS} will return the full * result set. *

* * @param companyId the primary key of the template's company * @param groupIds the primary keys of the groups * @param classNameIds the primary keys of the entity's instances the * templates are related to * @param classPKs the primary keys of the template's related entities * @param resourceClassNameId the primary key of the class name for * template's resource model * @param keywords the keywords (space separated), which may occur in the * template's name or description (optionally null) * @param type the template's type (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param mode the template's mode (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param start the lower bound of the range of templates to return * @param end the upper bound of the range of templates to return (not * inclusive) * @param orderByComparator the comparator to order the templates * (optionally null) * @return the matching templates ordered by the comparator */ @Override public List search( long companyId, long[] groupIds, long[] classNameIds, long[] classPKs, long resourceClassNameId, String keywords, String type, String mode, int status, int start, int end, OrderByComparator orderByComparator) { return ddmTemplateFinder.filterFindByKeywords( companyId, groupIds, classNameIds, classPKs, resourceClassNameId, keywords, type, mode, status, start, end, orderByComparator); } /** * Returns an ordered range of all the templates matching the group IDs, * class name IDs, class PK, name keyword, description keyword, type, mode, * and language. * *

* Useful when paginating results. Returns a maximum of end - * start instances. start and end are not * primary keys, they are indexes in the result set. Thus, 0 * refers to the first result in the set. Setting both start * and end to {@link QueryUtil#ALL_POS} will return the full * result set. *

* * @param companyId the primary key of the template's company * @param groupIds the primary keys of the groups * @param classNameIds the primary keys of the entity's instances the * templates are related to * @param classPKs the primary keys of the template's related entities * @param resourceClassNameId the primary key of the class name for * template's resource model * @param name the name keywords (optionally null) * @param description the description keywords (optionally * null) * @param type the template's type (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param mode the template's mode (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param language the template's script language (optionally * null). For more information, see * DDMTemplateConstants in the dynamic-data-mapping-api module. * @param andOperator whether every field must match its keywords, or just * one field. * @param start the lower bound of the range of templates to return * @param end the upper bound of the range of templates to return (not * inclusive) * @param orderByComparator the comparator to order the templates * (optionally null) * @return the matching templates ordered by the comparator */ @Override public List search( long companyId, long[] groupIds, long[] classNameIds, long[] classPKs, long resourceClassNameId, String name, String description, String type, String mode, String language, int status, boolean andOperator, int start, int end, OrderByComparator orderByComparator) { return ddmTemplateFinder.filterFindByC_G_C_C_R_N_D_T_M_L_S( companyId, groupIds, classNameIds, classPKs, resourceClassNameId, name, description, type, mode, language, status, andOperator, start, end, orderByComparator); } /** * Returns the number of templates matching the group, class name ID, class * PK, type, and mode, and matching the keywords in the template names and * descriptions. * * @param companyId the primary key of the template's company * @param groupId the primary key of the group * @param classNameId the primary key of the class name for template's * related model * @param classPK the primary key of the template's related entity * @param resourceClassNameId the primary key of the class name for * template's resource model * @param keywords the keywords (space separated), which may occur in the * template's name or description (optionally null) * @param type the template's type (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param mode the template's mode (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @return the number of matching templates */ @Override public int searchCount( long companyId, long groupId, long classNameId, long classPK, long resourceClassNameId, String keywords, String type, String mode, int status) { return ddmTemplateFinder.filterCountByKeywords( companyId, groupId, classNameId, classPK, resourceClassNameId, keywords, type, mode, status); } /** * Returns the number of templates matching the group, class name ID, class * PK, name keyword, description keyword, type, mode, and language. * * @param companyId the primary key of the template's company * @param groupId the primary key of the group * @param classNameId the primary key of the class name for template's * related model * @param classPK the primary key of the template's related entity * @param resourceClassNameId the primary key of the class name for * template's resource model * @param name the name keywords (optionally null) * @param description the description keywords (optionally * null) * @param type the template's type (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param mode the template's mode (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param language the template's script language (optionally * null). For more information, see * DDMTemplateConstants in the dynamic-data-mapping-api module. * @param andOperator whether every field must match its keywords, or just * one field. * @return the number of matching templates */ @Override public int searchCount( long companyId, long groupId, long classNameId, long classPK, long resourceClassNameId, String name, String description, String type, String mode, String language, int status, boolean andOperator) { return ddmTemplateFinder.filterCountByC_G_C_C_R_N_D_T_M_L_S( companyId, groupId, classNameId, classPK, resourceClassNameId, name, description, type, mode, language, status, andOperator); } /** * Returns the number of templates matching the group IDs, class name IDs, * class PK, type, and mode, and matching the keywords in the template names * and descriptions. * * @param companyId the primary key of the template's company * @param groupIds the primary keys of the groups * @param classNameIds the primary keys of the entity's instances the * templates are related to * @param classPKs the primary keys of the template's related entities * @param resourceClassNameId the primary key of the class name for * template's resource model * @param keywords the keywords (space separated), which may occur in the * template's name or description (optionally null) * @param type the template's type (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param mode the template's mode (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @return the number of matching templates */ @Override public int searchCount( long companyId, long[] groupIds, long[] classNameIds, long[] classPKs, long resourceClassNameId, String keywords, String type, String mode, int status) { return ddmTemplateFinder.filterCountByKeywords( companyId, groupIds, classNameIds, classPKs, resourceClassNameId, keywords, type, mode, status); } /** * Returns the number of templates matching the group IDs, class name IDs, * class PK, name keyword, description keyword, type, mode, and language. * * @param companyId the primary key of the template's company * @param groupIds the primary keys of the groups * @param classNameIds the primary keys of the entity's instances the * templates are related to * @param classPKs the primary keys of the template's related entities * @param resourceClassNameId the primary key of the class name for * template's resource model * @param name the name keywords (optionally null) * @param description the description keywords (optionally * null) * @param type the template's type (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param mode the template's mode (optionally null). For more * information, see DDMTemplateConstants in the * dynamic-data-mapping-api module. * @param language the template's script language (optionally * null). For more information, see * DDMTemplateConstants in the dynamic-data-mapping-api module. * @param andOperator whether every field must match its keywords, or just * one field. * @return the number of matching templates */ @Override public int searchCount( long companyId, long[] groupIds, long[] classNameIds, long[] classPKs, long resourceClassNameId, String name, String description, String type, String mode, String language, int status, boolean andOperator) { return ddmTemplateFinder.filterCountByC_G_C_C_R_N_D_T_M_L_S( companyId, groupIds, classNameIds, classPKs, resourceClassNameId, name, description, type, mode, language, status, andOperator); } /** * Updates the template matching the ID. * * @param templateId the primary key of the template * @param classPK the primary key of the template's related entity * @param nameMap the template's new locales and localized names * @param descriptionMap the template's new locales and localized * description * @param type the template's type. For more information, see * DDMTemplateConstants in the dynamic-data-mapping-api module. * @param mode the template's mode. For more information, see * DDMTemplateConstants in the dynamic-data-mapping-api module. * @param language the template's script language. For more information, * see DDMTemplateConstants in the dynamic-data-mapping-api module. * @param script the template's script * @param cacheable whether the template is cacheable * @param smallImage whether the template has a small image * @param smallImageURL the template's small image URL (optionally * null) * @param smallImageFile the template's small image file (optionally * null) * @param serviceContext the service context to be applied. Can set the * modification date. * @return the updated template */ @Override public DDMTemplate updateTemplate( long templateId, long classPK, Map nameMap, Map descriptionMap, String type, String mode, String language, String script, boolean cacheable, boolean smallImage, String smallImageURL, File smallImageFile, ServiceContext serviceContext) throws PortalException { DDMTemplatePermission.check( getPermissionChecker(), templateId, ActionKeys.UPDATE); return ddmTemplateLocalService.updateTemplate( getUserId(), templateId, classPK, nameMap, descriptionMap, type, mode, language, script, cacheable, smallImage, smallImageURL, smallImageFile, serviceContext); } /** * Updates the template matching the ID. * * @param templateId the primary key of the template * @param classPK the primary key of the template's related entity * @param nameMap the template's new locales and localized names * @param descriptionMap the template's new locales and localized * description * @param type the template's type. For more information, see * DDMTemplateConstants in the dynamic-data-mapping-api module. * @param mode the template's mode. For more information, see * DDMTemplateConstants in the dynamic-data-mapping-api module. * @param language the template's script language. For more information, * see DDMTemplateConstants in the dynamic-data-mapping-api module. * @param script the template's script * @param cacheable whether the template is cacheable * @param serviceContext the service context to be applied. Can set the * modification date. * @return the updated template */ @Override public DDMTemplate updateTemplate( long templateId, long classPK, Map nameMap, Map descriptionMap, String type, String mode, String language, String script, boolean cacheable, ServiceContext serviceContext) throws PortalException { DDMTemplatePermission.check( getPermissionChecker(), templateId, ActionKeys.UPDATE); return ddmTemplateLocalService.updateTemplate( getUserId(), templateId, classPK, nameMap, descriptionMap, type, mode, language, script, cacheable, serviceContext); } protected List getTemplates( long companyId, long[] groupIds, long classNameId, long classPK, long resourceClassNameId, String type, String mode, int status) { return ddmTemplateFinder.filterFindByC_G_C_C_R_T_M_S( companyId, groupIds, classNameId, classPK, resourceClassNameId, type, mode, status, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy