com.bemis.portal.report.service.impl.ReportDefinitionLocalServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.bemis.portal.report.service.impl.ReportDefinitionLocalServiceImpl.java

Source

/**
 * 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;

}