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.ReportPortletKeys; import com.bemis.portal.report.definition.ReportParameter; import com.bemis.portal.report.model.ReportDefinition; import com.bemis.portal.report.model.ReportRequest; import com.bemis.portal.report.runtime.ReportParametersValuesSerializer; import com.bemis.portal.report.service.base.ReportRequestLocalServiceBaseImpl; import com.liferay.document.library.kernel.model.DLFolderConstants; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.model.User; import com.liferay.portal.kernel.portletfilerepository.PortletFileRepository; import com.liferay.portal.kernel.repository.model.Folder; 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.kernel.util.Validator; import com.liferay.portal.spring.extender.service.ServiceReference; import java.io.File; import java.io.InputStream; import java.io.Serializable; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.commons.lang.StringUtils; /** * @author Michael C. Han * @see ReportRequestLocalServiceBaseImpl * @see com.bemis.portal.report.service.ReportRequestLocalServiceUtil */ @ProviderType public class ReportRequestLocalServiceImpl extends ReportRequestLocalServiceBaseImpl { @Override public ReportRequest addReportRequest(final long reportDefinitionId, String reportFormat, final Set<String> reportFields, Set<String> sortFields, final Map<ReportParameter, Serializable> reportParametersValues, ServiceContext serviceContext) throws PortalException { final User user = userLocalService.getUser(serviceContext.getGuestOrUserId()); Date now = new Date(); final long reportRequestId = counterLocalService.increment(); ReportRequest reportRequest = reportRequestPersistence.create(reportRequestId); reportRequest.setGroupId(user.getGroupId()); reportRequest.setCompanyId(user.getCompanyId()); reportRequest.setUserId(user.getUserId()); reportRequest.setUserName(user.getFullName()); reportRequest.setCreateDate(serviceContext.getCreateDate(now)); reportRequest.setModifiedDate(serviceContext.getModifiedDate(now)); final ReportDefinition reportDefinition = reportDefinitionLocalService .getReportDefinition(reportDefinitionId); reportRequest.setReportDefinitionCategory(reportDefinition.getCategory()); reportRequest.setReportFormat(reportFormat); reportRequest.setReportDefinitionId(reportDefinitionId); reportRequest.setReportDefinitionName(reportDefinition.getTitle(serviceContext.getLocale())); reportRequest.setSelectedFields(StringUtils.join(reportFields, StringPool.COMMA)); reportRequest.setSortFields(StringUtils.join(sortFields, StringPool.COMMA)); String reportParametersString = reportParametersValuesSerializer.serialize(reportParametersValues); reportRequest.setParameters(reportParametersString); reportRequest.setExpandoBridgeAttributes(serviceContext); reportRequestPersistence.update(reportRequest); /* // Resources resourceLocalService.addModelResources(reportRequest, serviceContext); */ return reportRequest; } @Override public void addReportResponse(long userId, long reportRequestId, String fileName, String mimeType, File file) throws PortalException { ReportRequest reportRequest = getReportRequest(reportRequestId); Folder folder = reportRequest.addAttachmentsFolder(); portletFileRepository.addPortletFileEntry(reportRequest.getGroupId(), userId, ReportRequest.class.getName(), reportRequest.getPrimaryKey(), ReportPortletKeys.REPORT_GENERATION_REQUEST, folder.getFolderId(), file, fileName, mimeType, false); } @Override public void addReportResponse(long userId, long reportRequestId, String fileName, String mimeType, InputStream inputStream) throws PortalException { ReportRequest reportRequest = getReportRequest(reportRequestId); Folder folder = reportRequest.addAttachmentsFolder(); portletFileRepository.addPortletFileEntry(reportRequest.getGroupId(), userId, ReportRequest.class.getName(), reportRequest.getPrimaryKey(), ReportPortletKeys.REPORT_GENERATION_REQUEST, folder.getFolderId(), inputStream, fileName, mimeType, false); } @Override public ReportRequest completeReportRequest(long reportRequestId, boolean success, String errorMessage) throws PortalException { ReportRequest reportRequest = getReportRequest(reportRequestId); reportRequest.setModifiedDate(new Date()); reportRequest.setReportRequestFinish(System.currentTimeMillis()); reportRequest.setSuccess(success); if (_log.isInfoEnabled()) { _log.info("Completed Report Request: " + reportRequest.getReportRequestId() + " in " + (reportRequest.getReportRequestFinish() - reportRequest.getReportRequestStart()) + "ms"); } if (Validator.isNotNull(errorMessage)) { reportRequest.setErrorMessage(errorMessage); } return reportRequestPersistence.update(reportRequest); } @Override public ReportRequest deleteReportRequest(long reportRequestId) throws PortalException { ReportRequest reportRequest = getReportRequest(reportRequestId); return deleteReportRequest(reportRequest); } @Override public ReportRequest deleteReportRequest(ReportRequest reportRequest) throws PortalException { long folderId = reportRequest.getAttachmentsFolderId(); if (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { portletFileRepository.deletePortletFolder(folderId); } reportRequestPersistence.remove(reportRequest); /* // Resources resourceLocalService.deleteResource( reportRequest, ResourceConstants.SCOPE_INDIVIDUAL); */ return reportRequest; } @Override public List<ReportRequest> getReportRequestByRDC_U(String reportDefinitionCategory, long userId) { return reportRequestPersistence.findByRDC_U(reportDefinitionCategory, userId); } @Override public List<ReportRequest> getReportRequestByRDC_U(String reportDefinitionCategory, long userId, int start, int end) { return reportRequestPersistence.findByRDC_U(reportDefinitionCategory, userId, start, end); } @Override public List<ReportRequest> getReportRequestByRDC_U(String[] reportDefinitionCategories, long userId) { if (ArrayUtil.isEmpty(reportDefinitionCategories)) { return Collections.emptyList(); } return reportRequestPersistence.findByRDC_U(reportDefinitionCategories, userId); } @Override public List<ReportRequest> getReportRequestByRDC_U(String[] reportDefinitionCategories, long userId, int start, int end) { if (ArrayUtil.isEmpty(reportDefinitionCategories)) { return Collections.emptyList(); } return reportRequestPersistence.findByRDC_U(reportDefinitionCategories, userId, start, end); } @Override public List<ReportRequest> getReportRequests(long reportDefinitionId) { return reportRequestPersistence.findByReportDefinitionId(reportDefinitionId); } @Override public List<ReportRequest> getReportRequestsByC_G(long companyId, long groupId) { return reportRequestPersistence.findByC_G(companyId, groupId); } @Override public List<ReportRequest> getReportRequestsByRDIUser(long reportDefinitionId, long userId) { return reportRequestPersistence.findByRDI_U(reportDefinitionId, userId); } @Override public List<ReportRequest> getReportRequestsByUser(long userId, int start, int end) { return reportRequestPersistence.findByUserId(userId, start, end); } @Override public int getReportRequestsByUserCount(long userId) { return reportRequestPersistence.countByUserId(userId); } @Override public ReportRequest startReportRequest(long reportRequestId) throws PortalException { ReportRequest reportRequest = getReportRequest(reportRequestId); reportRequest.setModifiedDate(new Date()); reportRequest.setReportRequestStart(System.currentTimeMillis()); return reportRequestPersistence.update(reportRequest); } @ServiceReference(type = PortletFileRepository.class) protected PortletFileRepository portletFileRepository; @ServiceReference(type = ReportParametersValuesSerializer.class) protected ReportParametersValuesSerializer reportParametersValuesSerializer; private static final Log _log = LogFactoryUtil.getLog(ReportRequestLocalServiceImpl.class); }