Java tutorial
/** * 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.bemis.portal.report.service.impl; import aQute.bnd.annotation.ProviderType; import com.bemis.portal.report.definition.ReportParameter; import com.bemis.portal.report.exception.DuplicateReportDefinitionException; import com.bemis.portal.report.model.ReportDefinition; import com.bemis.portal.report.runtime.ReportParameterSetSerializer; import com.bemis.portal.report.service.base.ReportDefinitionLocalServiceBaseImpl; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.model.User; import com.liferay.portal.kernel.service.ServiceContext; import com.liferay.portal.kernel.util.ArrayUtil; import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.spring.extender.service.ServiceReference; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; import org.apache.commons.lang.StringUtils; /** * @author Michael C. Han * @see ReportDefinitionLocalServiceBaseImpl * @see com.bemis.portal.report.service.ReportDefinitionLocalServiceUtil */ @ProviderType public class ReportDefinitionLocalServiceImpl extends ReportDefinitionLocalServiceBaseImpl { @Override public ReportDefinition addReportDefinition(String name, String category, Map<Locale, String> titleMap, Map<Locale, String> descriptionMap, String urlPath, Set<String> availableFields, Set<String> defaultSelectedFields, Set<String> sortFields, ServiceContext serviceContext) throws PortalException { return addReportDefinition(name, category, titleMap, descriptionMap, urlPath, availableFields, defaultSelectedFields, sortFields, null, serviceContext); } @Override public ReportDefinition addReportDefinition(String name, String category, Map<Locale, String> titleMap, Map<Locale, String> descriptionMap, String urlPath, Set<String> availableFields, Set<String> defaultSelectedFields, Set<String> sortFields, Set<ReportParameter> reportParameters, ServiceContext serviceContext) throws PortalException { if (reportDefinitionPersistence.fetchByURLPath(urlPath) != null) { throw new DuplicateReportDefinitionException(urlPath); } User user = userLocalService.getUser(serviceContext.getGuestOrUserId()); Date now = new Date(); long reportDefintionId = counterLocalService.increment(); ReportDefinition reportDefinition = reportDefinitionPersistence.create(reportDefintionId); reportDefinition.setCompanyId(user.getCompanyId()); reportDefinition.setGroupId(serviceContext.getScopeGroupId()); reportDefinition.setUserId(user.getUserId()); reportDefinition.setUserName(user.getFullName()); reportDefinition.setCreateDate(serviceContext.getCreateDate(now)); reportDefinition.setModifiedDate(serviceContext.getModifiedDate(now)); reportDefinition.setName(name); reportDefinition.setCategory(category); reportDefinition.setDescriptionMap(descriptionMap); reportDefinition.setTitleMap(titleMap, Locale.US); reportDefinition.setUrlPath(urlPath); reportDefinition.setAvailableFields(StringUtils.join(availableFields, StringPool.COMMA)); reportDefinition.setDefaultSelectedFields(StringUtils.join(defaultSelectedFields, StringPool.COMMA)); reportDefinition.setSortFields(StringUtils.join(sortFields, StringPool.COMMA)); String reportParametersString = reportParameterSetSerializer.serialize(reportParameters); reportDefinition.setParameters(reportParametersString); reportDefinition.setExpandoBridgeAttributes(serviceContext); reportDefinitionPersistence.update(reportDefinition); /* // Resources resourceLocalService.addModelResources( reportDefinition, serviceContext); */ return reportDefinition; } @Override public ReportDefinition deleteReportDefinition(long reportDefinitionId) throws PortalException { ReportDefinition reportDefinition = reportDefinitionPersistence.fetchByPrimaryKey(reportDefinitionId); return deleteReportDefinition(reportDefinition); } @Override public ReportDefinition deleteReportDefinition(ReportDefinition reportDefinition) throws PortalException { reportDefinitionPersistence.remove(reportDefinition); /* // Resources resourceLocalService.deleteResource( reportDefinition, ResourceConstants.SCOPE_INDIVIDUAL); */ return reportDefinition; } @Override public ReportDefinition fetchReportDefinitionByName(String name) { return reportDefinitionPersistence.fetchByName(name); } @Override public ReportDefinition fetchReportDefinitionByURLPath(String urlPath) { return reportDefinitionPersistence.fetchByURLPath(urlPath); } @Override public List<ReportDefinition> getReportDefinitions(long companyId, long groupId) { return reportDefinitionPersistence.findByC_G(companyId, groupId); } @Override public List<ReportDefinition> getReportDefinitions(long companyId, long groupId, int start, int end) { return reportDefinitionPersistence.findByC_G(companyId, groupId, start, end); } @Override public List<ReportDefinition> getReportDefinitions(String category, long companyId, long groupId) { return reportDefinitionPersistence.findByC_C_G(category, companyId, groupId); } @Override public List<ReportDefinition> getReportDefinitions(String[] categories, long companyId, long groupId) { if (ArrayUtil.isEmpty(categories)) { return Collections.emptyList(); } return reportDefinitionPersistence.findByC_C_G(categories, companyId, groupId); } @Override public int getReportDefinitionsCount(long companyId, long groupId) { return reportDefinitionPersistence.countByC_G(companyId, groupId); } @Override public ReportDefinition updateReportDefinition(long reportDefinitionId, Set<String> availableFields, Set<String> defaultSelectedFields, Set<String> sortFields, Set<ReportParameter> reportParameters, ServiceContext serviceContext) throws PortalException { ReportDefinition reportDefinition = reportDefinitionPersistence.fetchByPrimaryKey(reportDefinitionId); User user = userLocalService.getUser(serviceContext.getGuestOrUserId()); Date now = new Date(); reportDefinition.setUserId(user.getUserId()); reportDefinition.setUserName(user.getFullName()); reportDefinition.setModifiedDate(serviceContext.getModifiedDate(now)); reportDefinition.setAvailableFields(StringUtils.join(availableFields, StringPool.COMMA)); reportDefinition.setDefaultSelectedFields(StringUtils.join(defaultSelectedFields, StringPool.COMMA)); reportDefinition.setSortFields(StringUtils.join(sortFields, StringPool.COMMA)); String reportParametersString = reportParameterSetSerializer.serialize(reportParameters); reportDefinition.setParameters(reportParametersString); reportDefinitionPersistence.update(reportDefinition); return reportDefinition; } @Override public ReportDefinition updateReportDefinition(long reportDefinitionId, String category, Map<Locale, String> titleMap, Map<Locale, String> descriptionMap, String urlPath, Set<String> availableFields, Set<String> defaultSelectedFields, Set<String> sortFields, ServiceContext serviceContext) throws PortalException { ReportDefinition reportDefinition = reportDefinitionPersistence.fetchByPrimaryKey(reportDefinitionId); User user = userLocalService.getUser(serviceContext.getGuestOrUserId()); Date now = new Date(); reportDefinition.setUserId(user.getUserId()); reportDefinition.setUserName(user.getFullName()); reportDefinition.setModifiedDate(serviceContext.getModifiedDate(now)); reportDefinition.setCategory(category); reportDefinition.setDescriptionMap(descriptionMap); reportDefinition.setTitleMap(titleMap); reportDefinition.setUrlPath(urlPath); reportDefinition.setAvailableFields(StringUtils.join(availableFields, StringPool.COMMA)); reportDefinition.setDefaultSelectedFields(StringUtils.join(defaultSelectedFields, StringPool.COMMA)); reportDefinition.setSortFields(StringUtils.join(sortFields, StringPool.COMMA)); reportDefinition.setExpandoBridgeAttributes(serviceContext); reportDefinitionPersistence.update(reportDefinition); return reportDefinition; } @ServiceReference(type = ReportParameterSetSerializer.class) protected ReportParameterSetSerializer reportParameterSetSerializer; }