com.liferay.content.targeting.portlet.util.CampaignQueryRule.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.content.targeting.portlet.util.CampaignQueryRule.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.liferay.content.targeting.portlet.util;

import com.liferay.content.targeting.model.Campaign;
import com.liferay.content.targeting.service.CampaignLocalService;
import com.liferay.osgi.util.service.ServiceTrackerUtil;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.language.LanguageUtil;
import com.liferay.portal.kernel.util.ArrayUtil;
import com.liferay.portal.kernel.util.StringPool;

import java.util.Locale;

import javax.portlet.PortletConfig;

import org.osgi.framework.Bundle;
import org.osgi.framework.FrameworkUtil;

/**
 * @author Eudaldo Alonso
 */
public class CampaignQueryRule extends AssetQueryRule implements QueryRule {

    public CampaignQueryRule() throws PortalException, SystemException {
        this(0, 0, 0, null);
    }

    public CampaignQueryRule(long assetEntryId, long campaignId, int index, Locale locale)
            throws PortalException, SystemException {

        super(assetEntryId, index, locale);

        _campaignId = campaignId;

        initCampaign();
    }

    @Override
    public int compareTo(QueryRule queryRule) {
        CampaignQueryRule campaignQueryRule = (CampaignQueryRule) queryRule;

        return getCampaignPriority() - campaignQueryRule.getCampaignPriority();
    }

    public boolean evaluate(long[] campaignIds) {
        if (isDefaultRule() || ArrayUtil.contains(campaignIds, _campaignId)) {
            return true;
        }

        return false;
    }

    public long getCampaignId() {
        return _campaignId;
    }

    public String getCampaignName(Locale locale) {
        if (_campaign != null) {
            return _campaign.getName(locale);
        }

        return StringPool.BLANK;
    }

    public int getCampaignPriority() {
        if (_campaign != null) {
            return _campaign.getPriority();
        }

        return -1;
    }

    public long getGroupId(long scopeGroupId) {
        if (_campaign != null) {
            return _campaign.getGroupId();
        }

        return super.getGroupId(scopeGroupId);
    }

    public String getSummary(PortletConfig portletConfig, Locale locale) throws SystemException {

        if (_campaign == null) {
            return LanguageUtil.get(portletConfig, locale, "default");
        }

        return getCampaignName(locale);
    }

    public boolean isValid() {
        if (!super.isValid() || (_campaign == null)) {
            return false;
        }

        return true;
    }

    public void setCampaignId(long campaignId) {
        _campaignId = campaignId;
    }

    protected void initCampaign() {
        try {
            Bundle bundle = FrameworkUtil.getBundle(getClass());

            CampaignLocalService campaignLocalService = ServiceTrackerUtil.getService(CampaignLocalService.class,
                    bundle.getBundleContext());

            _campaign = campaignLocalService.getCampaign(_campaignId);
        } catch (Exception e) {
        }
    }

    private Campaign _campaign;
    private long _campaignId;

}