com.bemis.portal.report.model.impl.ReportDefinitionImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.bemis.portal.report.model.impl.ReportDefinitionImpl.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.model.impl;

import aQute.bnd.annotation.ProviderType;

import com.bemis.portal.report.definition.ReportParameter;
import com.bemis.portal.report.runtime.ReportParameterSetSerializer;
import com.bemis.portal.report.runtime.ReportParameterSetSerializerUtil;

import com.liferay.portal.kernel.json.JSONException;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.kernel.util.StringUtil;

import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.Set;

/**
 * @author Michael C. Han
 */
@ProviderType
public class ReportDefinitionImpl extends ReportDefinitionBaseImpl {

    public ReportDefinitionImpl() {
    }

    @Override
    public Set<String> getAvailableFieldsSet() {
        if (_availableFieldsSet == null) {
            String[] availableFieldsArray = StringUtil.split(getAvailableFields(), StringPool.COMMA);

            _availableFieldsSet = new LinkedHashSet<>(Arrays.asList(availableFieldsArray));
        }

        return _availableFieldsSet;
    }

    @Override
    public Set<String> getDefaultSelectedFieldsSet() {
        if (_defaultSelectedFieldsSet == null) {
            String[] defaultSelectedFieldsArray = StringUtil.split(getDefaultSelectedFields(), StringPool.COMMA);

            _defaultSelectedFieldsSet = new LinkedHashSet<>(Arrays.asList(defaultSelectedFieldsArray));
        }

        return _defaultSelectedFieldsSet;
    }

    @Override
    public Set<ReportParameter> getReportParameters() {
        if (_reportParameters == null) {
            String paramtersJSON = getParameters();

            ReportParameterSetSerializer reportParameterSetSerializer = ReportParameterSetSerializerUtil
                    .getReportParameterSetSerializer();

            try {
                Set<ReportParameter> reportParameters = reportParameterSetSerializer.deserialize(paramtersJSON);

                if (reportParameters == null) {
                    reportParameters = Collections.emptySet();
                }

                _reportParameters = reportParameters;
            } catch (JSONException jsone) {
                if (_log.isWarnEnabled()) {
                    _log.warn("Error deserializing parameters", jsone);
                }
            }
        }

        return _reportParameters;
    }

    @Override
    public Set<String> getSortFieldsSet() {
        if (_sortFieldsSet == null) {
            String[] sortFieldsArray = StringUtil.split(getSortFields(), StringPool.COMMA);

            _sortFieldsSet = new LinkedHashSet<>(Arrays.asList(sortFieldsArray));
        }

        return _sortFieldsSet;
    }

    @Override
    public void setAvailableFields(String availableFields) {
        super.setAvailableFields(availableFields);

        _availableFieldsSet = null;
    }

    @Override
    public void setDefaultSelectedFields(String defaultSelectedFields) {
        super.setDefaultSelectedFields(defaultSelectedFields);

        _defaultSelectedFieldsSet = null;
    }

    @Override
    public void setParameters(String parameters) {
        super.setParameters(parameters);

        _reportParameters = null;
    }

    @Override
    public void setSortFields(String sortFields) {
        super.setSortFields(sortFields);

        _sortFieldsSet = null;
    }

    private static final Log _log = LogFactoryUtil.getLog(ReportDefinitionImpl.class);

    private Set<String> _availableFieldsSet;
    private Set<String> _defaultSelectedFieldsSet;
    private Set<ReportParameter> _reportParameters;
    private Set<String> _sortFieldsSet;

}