Example usage for com.liferay.portal.kernel.dao.orm RestrictionsFactoryUtil conjunction

List of usage examples for com.liferay.portal.kernel.dao.orm RestrictionsFactoryUtil conjunction

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.dao.orm RestrictionsFactoryUtil conjunction.

Prototype

public static Conjunction conjunction() 

Source Link

Usage

From source file:com.apstamp.liferay.service.impl.TemplateLocalServiceImpl.java

License:Open Source License

protected DynamicQuery buildTemplateDynamicQuery(long templateId, String clienteEmail, String empresaEmail,
        String clienteNome, String clienteEmpresa, String empresaNome, String empresaRepresentante,
        String projetoNome, String projetoTecnologia, String projetoTag, boolean andSearch) {
    Junction junction = null;/*from  ww  w  .  jav a 2 s  . com*/
    if (andSearch)
        junction = RestrictionsFactoryUtil.conjunction();
    else
        junction = RestrictionsFactoryUtil.disjunction();

    //campos do cliente
    if (templateId > 0) {
        Property property = PropertyFactoryUtil.forName("templateId");
        junction.add(property.eq(Long.valueOf(templateId)));
    }

    if (Validator.isNotNull(clienteNome)) {
        Property property = PropertyFactoryUtil.forName("clienteNome");
        String value = (new StringBuilder("%")).append(clienteNome).append("%").toString();
        junction.add(property.like(value));
    }
    if (Validator.isNotNull(clienteEmpresa)) {
        Property property = PropertyFactoryUtil.forName("clienteEmpresa");
        String value = (new StringBuilder("%")).append(clienteEmpresa).append("%").toString();
        junction.add(property.like(value));
    }

    //campos da empresa
    if (Validator.isNotNull(empresaNome)) {
        Property property = PropertyFactoryUtil.forName("empresaNome");
        String value = (new StringBuilder("%")).append(empresaNome).append("%").toString();
        junction.add(property.like(value));
    }
    if (Validator.isNotNull(empresaRepresentante)) {
        Property property = PropertyFactoryUtil.forName("empresaRepresentante");
        String value = (new StringBuilder("%")).append(empresaRepresentante).append("%").toString();
        junction.add(property.like(value));
    }

    //campos projeto
    if (Validator.isNotNull(projetoNome)) {
        Property property = PropertyFactoryUtil.forName("projetoNome");
        String value = (new StringBuilder("%")).append(projetoNome).append("%").toString();
        junction.add(property.like(value));
    }
    if (Validator.isNotNull(projetoTecnologia)) {
        Property property = PropertyFactoryUtil.forName("projetoTecnologia");
        String value = (new StringBuilder("%")).append(projetoTecnologia).append("%").toString();
        junction.add(property.like(value));
    }
    if (Validator.isNotNull(projetoTag)) {
        Property property = PropertyFactoryUtil.forName("projetoTag");
        String value = (new StringBuilder("%")).append(projetoTag).append("%").toString();
        junction.add(property.like(value));
    }
    if (Validator.isNotNull(clienteEmail)) {
        Property property = PropertyFactoryUtil.forName("clienteEmail");
        String value = (new StringBuilder("%")).append(clienteEmail).append("%").toString();
        junction.add(property.like(value));
    }
    if (Validator.isNotNull(empresaEmail)) {
        Property property = PropertyFactoryUtil.forName("empresaEmail");
        String value = (new StringBuilder("%")).append(empresaEmail).append("%").toString();
        junction.add(property.like(value));
    }

    DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(Template.class, getClassLoader());
    return dynamicQuery.add(junction);
}

From source file:com.commsen.liferay.multidevice.rules.service.impl.RuleLocalServiceImpl.java

License:Open Source License

/**
 * Returns list of rules matching the company, group, layout and user's device.
 * /*from  w  ww .j  a va 2s.co m*/
 * @param companyId company (instance) id
 * @param groupId group (community/organization) id
 * @param layoutId layout (page) id
 * @param device user's device
 * @action the rule action type (change theme, redirect)
 * @return list of rules matching the company, group, layout and user's device.
 */
public List<Rule> getMatchingRules(long companyId, long groupId, long layoutId, Device device) {
    List<Rule> result = Collections.emptyList();

    // Brand and model query part
    Junction modelMatchesOrNull = RestrictionsFactoryUtil.disjunction();
    modelMatchesOrNull.add(PropertyFactoryUtil.forName("model").eq(device.getModel()));
    modelMatchesOrNull.add(PropertyFactoryUtil.forName("model").isNull());

    Junction brandMatchesAndModelMatchesOrNull = RestrictionsFactoryUtil.conjunction();
    brandMatchesAndModelMatchesOrNull.add(PropertyFactoryUtil.forName("brand").eq(device.getBrand()));
    brandMatchesAndModelMatchesOrNull.add(modelMatchesOrNull);

    Junction brandNullOrMatchesWithModelMatchesOrNull = RestrictionsFactoryUtil.disjunction();
    brandNullOrMatchesWithModelMatchesOrNull.add(PropertyFactoryUtil.forName("brand").isNull());
    brandNullOrMatchesWithModelMatchesOrNull.add(brandMatchesAndModelMatchesOrNull);

    // Operating system query part
    Junction osVersionMatchesOrNull = RestrictionsFactoryUtil.disjunction();
    osVersionMatchesOrNull.add(PropertyFactoryUtil.forName("osVersion").eq(device.getOSVersion()));
    osVersionMatchesOrNull.add(PropertyFactoryUtil.forName("osVersion").isNull());

    Junction osNameMatchesAndOsVersionMathcesOrNull = RestrictionsFactoryUtil.conjunction();
    osNameMatchesAndOsVersionMathcesOrNull.add(PropertyFactoryUtil.forName("os").eq(device.getOS()));
    osNameMatchesAndOsVersionMathcesOrNull.add(osVersionMatchesOrNull);

    Junction osNameNullOrMatchesWithOsVersionMathcesOrNull = RestrictionsFactoryUtil.disjunction();
    osNameNullOrMatchesWithOsVersionMathcesOrNull.add(PropertyFactoryUtil.forName("os").isNull());
    osNameNullOrMatchesWithOsVersionMathcesOrNull.add(osNameMatchesAndOsVersionMathcesOrNull);

    // Browser query part
    Junction browserVersionMatchesOrNull = RestrictionsFactoryUtil.disjunction();
    browserVersionMatchesOrNull
            .add(PropertyFactoryUtil.forName("browserVersion").eq(device.getBrowserVersion()));
    browserVersionMatchesOrNull.add(PropertyFactoryUtil.forName("browserVersion").isNull());

    Junction browserNameMatchesAndBrowserVersionMathcesOrNull = RestrictionsFactoryUtil.conjunction();
    browserNameMatchesAndBrowserVersionMathcesOrNull
            .add(PropertyFactoryUtil.forName("browser").eq(device.getBrowser()));
    browserNameMatchesAndBrowserVersionMathcesOrNull.add(browserVersionMatchesOrNull);

    Junction browserNameNullOrMatchesWithBrowserVersionMatchesOrNull = RestrictionsFactoryUtil.disjunction();
    browserNameNullOrMatchesWithBrowserVersionMatchesOrNull
            .add(PropertyFactoryUtil.forName("browser").isNull());
    browserNameNullOrMatchesWithBrowserVersionMatchesOrNull
            .add(browserNameMatchesAndBrowserVersionMathcesOrNull);

    // Pointing device query part
    Junction pointingMethodMatchesOrNull = RestrictionsFactoryUtil.disjunction();
    pointingMethodMatchesOrNull
            .add(PropertyFactoryUtil.forName("pointingMethod").eq(device.getPointingMethod()));
    pointingMethodMatchesOrNull.add(PropertyFactoryUtil.forName("pointingMethod").isNull());

    // Is tablet query part
    Junction tabletMatchesOrNull = RestrictionsFactoryUtil.disjunction();
    tabletMatchesOrNull.add(PropertyFactoryUtil.forName("tablet").eq(Boolean.toString(device.isTablet())));
    tabletMatchesOrNull.add(PropertyFactoryUtil.forName("tablet").isNull());

    // Has qwerty keyboard query part
    Junction qwertyKeyboardMatchesOrNull = RestrictionsFactoryUtil.disjunction();
    qwertyKeyboardMatchesOrNull
            .add(PropertyFactoryUtil.forName("qwertyKeyboad").eq(Boolean.toString(device.hasQwertyKeyboard())));
    qwertyKeyboardMatchesOrNull.add(PropertyFactoryUtil.forName("qwertyKeyboad").isNull());

    // Page query part
    Junction pageMatchesOrNull = RestrictionsFactoryUtil.disjunction();
    pageMatchesOrNull.add(PropertyFactoryUtil.forName("layoutId").eq(0l));
    pageMatchesOrNull.add(PropertyFactoryUtil.forName("layoutId").eq(layoutId));

    DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(Rule.class);
    dynamicQuery.add(PropertyFactoryUtil.forName("companyId").eq(companyId));
    dynamicQuery.add(PropertyFactoryUtil.forName("groupId").eq(groupId));
    dynamicQuery.add(pageMatchesOrNull);
    dynamicQuery.add(brandNullOrMatchesWithModelMatchesOrNull);
    dynamicQuery.add(osNameNullOrMatchesWithOsVersionMathcesOrNull);
    dynamicQuery.add(browserNameNullOrMatchesWithBrowserVersionMatchesOrNull);
    dynamicQuery.add(pointingMethodMatchesOrNull);
    dynamicQuery.add(tabletMatchesOrNull);
    dynamicQuery.add(qwertyKeyboardMatchesOrNull);
    dynamicQuery.addOrder(OrderFactoryUtil.desc("layoutId"));
    dynamicQuery.addOrder(OrderFactoryUtil.asc("priority"));

    try {
        result = RuleUtil.findWithDynamicQuery(dynamicQuery);
    } catch (SystemException e) {
        _log.error("Failed to find theme rules matching " + device, e);
    }
    return result;
}

From source file:com.liferay.bbb.service.impl.BBBMeetingLocalServiceImpl.java

License:Open Source License

protected DynamicQuery buildDynamicQuery(long groupId, long userId, String name, String description, int status,
        boolean andSearch) {

    DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(BBBMeeting.class, getClassLoader());

    if (groupId > 0) {
        Property property = PropertyFactoryUtil.forName("groupId");

        dynamicQuery.add(property.eq(groupId));
    }/*from  w  w  w  .j av a  2s  .c o  m*/

    if (userId > 0) {
        Property property = PropertyFactoryUtil.forName("userId");

        dynamicQuery.add(property.eq(userId));
    }

    if (status != BBBMeetingConstants.STATUS_ANY) {
        Property property = PropertyFactoryUtil.forName("status");

        dynamicQuery.add(property.eq(status));
    }

    Junction junction = null;

    if (andSearch) {
        junction = RestrictionsFactoryUtil.conjunction();
    } else {
        junction = RestrictionsFactoryUtil.disjunction();
    }

    if (Validator.isNotNull(name)) {
        Property property = PropertyFactoryUtil.forName("name");

        String value = StringUtil.quote(name, StringPool.PERCENT);

        junction.add(property.like(value));
    }

    if (Validator.isNotNull(description)) {
        Property property = PropertyFactoryUtil.forName("description");

        String value = StringUtil.quote(description, StringPool.PERCENT);

        junction.add(property.like(value));
    }

    dynamicQuery.add(junction);

    return dynamicQuery;
}

From source file:com.liferay.document.library.web.internal.lar.DLPortletDataHandler.java

License:Open Source License

protected ActionableDynamicQuery getRepositoryActionableDynamicQuery(
        final PortletDataContext portletDataContext) throws Exception {

    ExportActionableDynamicQuery exportActionableDynamicQuery = _repositoryLocalService
            .getExportActionableDynamicQuery(portletDataContext);

    final ActionableDynamicQuery.AddCriteriaMethod addCriteriaMethod = exportActionableDynamicQuery
            .getAddCriteriaMethod();/*from  www.  java  2s.c  om*/

    exportActionableDynamicQuery.setAddCriteriaMethod(new ActionableDynamicQuery.AddCriteriaMethod() {

        @Override
        public void addCriteria(DynamicQuery dynamicQuery) {
            addCriteriaMethod.addCriteria(dynamicQuery);

            Conjunction conjunction = RestrictionsFactoryUtil.conjunction();

            Property classNameIdProperty = PropertyFactoryUtil.forName("classNameId");

            long liferayRepositoryClassNameId = _portal.getClassNameId(LiferayRepositoryDefiner.CLASS_NAME);

            conjunction.add(classNameIdProperty.ne(liferayRepositoryClassNameId));

            long tempFileRepositoryClassNameId = _portal
                    .getClassNameId(TemporaryFileEntryRepositoryDefiner.CLASS_NAME);

            conjunction.add(classNameIdProperty.ne(tempFileRepositoryClassNameId));

            dynamicQuery.add(conjunction);

            Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

            Property portletIdProperty = PropertyFactoryUtil.forName("portletId");

            disjunction.add(portletIdProperty.isNull());
            disjunction.add(portletIdProperty.eq(StringPool.BLANK));
            disjunction.add(portletIdProperty.eq(DLPortletKeys.DOCUMENT_LIBRARY_ADMIN));
            disjunction.add(portletIdProperty.like(DLPortletKeys.DOCUMENT_LIBRARY + "%"));

            dynamicQuery.add(disjunction);
        }

    });

    exportActionableDynamicQuery.setStagedModelType(new StagedModelType(
            _portal.getClassNameId(Repository.class.getName()), StagedModelType.REFERRER_CLASS_NAME_ID_ALL));

    return exportActionableDynamicQuery;
}

From source file:com.liferay.document.library.web.lar.DLPortletDataHandler.java

License:Open Source License

protected ActionableDynamicQuery getRepositoryActionableDynamicQuery(
        final PortletDataContext portletDataContext) throws Exception {

    ExportActionableDynamicQuery exportActionableDynamicQuery = _repositoryLocalService
            .getExportActionableDynamicQuery(portletDataContext);

    final ActionableDynamicQuery.AddCriteriaMethod addCriteriaMethod = exportActionableDynamicQuery
            .getAddCriteriaMethod();/*from w w  w .ja v a 2s  .  c  om*/

    exportActionableDynamicQuery.setAddCriteriaMethod(new ActionableDynamicQuery.AddCriteriaMethod() {

        @Override
        public void addCriteria(DynamicQuery dynamicQuery) {
            addCriteriaMethod.addCriteria(dynamicQuery);

            Conjunction conjunction = RestrictionsFactoryUtil.conjunction();

            Property classNameIdProperty = PropertyFactoryUtil.forName("classNameId");

            long liferayRepositoryClassNameId = _portal.getClassNameId(LiferayRepositoryDefiner.CLASS_NAME);

            conjunction.add(classNameIdProperty.ne(liferayRepositoryClassNameId));

            long tempFileRepositoryClassNameId = _portal
                    .getClassNameId(TemporaryFileEntryRepositoryDefiner.CLASS_NAME);

            conjunction.add(classNameIdProperty.ne(tempFileRepositoryClassNameId));

            dynamicQuery.add(conjunction);

            Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

            Property portletIdProperty = PropertyFactoryUtil.forName("portletId");

            disjunction.add(portletIdProperty.isNull());
            disjunction.add(portletIdProperty.eq(StringPool.BLANK));

            dynamicQuery.add(disjunction);
        }

    });

    exportActionableDynamicQuery.setStagedModelType(new StagedModelType(
            _portal.getClassNameId(Repository.class.getName()), StagedModelType.REFERRER_CLASS_NAME_ID_ALL));

    return exportActionableDynamicQuery;
}

From source file:com.liferay.exportimport.lar.DeletionSystemEventExporter.java

License:Open Source License

protected void doAddCriteria(PortletDataContext portletDataContext,
        Set<StagedModelType> deletionSystemEventStagedModelTypes, DynamicQuery dynamicQuery) {

    Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

    Property groupIdProperty = PropertyFactoryUtil.forName("groupId");

    disjunction.add(groupIdProperty.eq(0L));
    disjunction.add(groupIdProperty.eq(portletDataContext.getScopeGroupId()));

    dynamicQuery.add(disjunction);/*from  w  w  w.jav a 2 s .co m*/

    if (!deletionSystemEventStagedModelTypes.isEmpty()) {
        Property classNameIdProperty = PropertyFactoryUtil.forName("classNameId");

        Property referrerClassNameIdProperty = PropertyFactoryUtil.forName("referrerClassNameId");

        Disjunction referrerClassNameIdDisjunction = RestrictionsFactoryUtil.disjunction();

        for (StagedModelType stagedModelType : deletionSystemEventStagedModelTypes) {

            Conjunction conjunction = RestrictionsFactoryUtil.conjunction();

            conjunction.add(classNameIdProperty.eq(stagedModelType.getClassNameId()));

            if (stagedModelType.getReferrerClassNameId() >= 0) {
                conjunction.add(referrerClassNameIdProperty.eq(stagedModelType.getReferrerClassNameId()));
            }

            referrerClassNameIdDisjunction.add(conjunction);
        }

        dynamicQuery.add(referrerClassNameIdDisjunction);
    }

    Property typeProperty = PropertyFactoryUtil.forName("type");

    dynamicQuery.add(typeProperty.eq(SystemEventConstants.TYPE_DELETE));

    addCreateDateProperty(portletDataContext, dynamicQuery);
}

From source file:com.liferay.exportimport.lar.PortletDataContextImpl.java

License:Open Source License

@Override
public Criterion getDateRangeCriteria(String propertyName) {
    if (!hasDateRange()) {
        return null;
    }/*from   w  w w .jav  a  2 s  .c  o m*/

    Conjunction conjunction = RestrictionsFactoryUtil.conjunction();

    Property property = PropertyFactoryUtil.forName(propertyName);

    conjunction.add(property.le(_endDate));
    conjunction.add(property.ge(_startDate));

    return conjunction;
}

From source file:com.liferay.exportimport.test.util.internal.exportimport.staged.model.repository.DummyFolderStagedModelRepository.java

License:Open Source License

@Override
public ExportActionableDynamicQuery getExportActionableDynamicQuery(PortletDataContext portletDataContext) {

    final ExportActionableDynamicQuery exportActionableDynamicQuery = new ExportActionableDynamicQuery() {

        @Override//from ww  w . j a  va  2s . c  om
        public long performCount() throws PortalException {
            ManifestSummary manifestSummary = portletDataContext.getManifestSummary();

            StagedModelType stagedModelType = getStagedModelType();

            long modelAdditionCount = _dummyFolders.size();

            manifestSummary.addModelAdditionCount(stagedModelType, modelAdditionCount);

            manifestSummary.addModelDeletionCount(stagedModelType, 0);

            return modelAdditionCount;
        }

        @Override
        protected Projection getCountProjection() {
            return ProjectionFactoryUtil.countDistinct("resourcePrimKey");
        }

    };

    exportActionableDynamicQuery.setBaseLocalService(new DummyFolderBaseLocalServiceImpl());

    Class<?> clazz = getClass();

    exportActionableDynamicQuery.setClassLoader(clazz.getClassLoader());

    exportActionableDynamicQuery.setModelClass(DummyFolder.class);

    exportActionableDynamicQuery.setPrimaryKeyPropertyName("id");

    exportActionableDynamicQuery.setAddCriteriaMethod(new ActionableDynamicQuery.AddCriteriaMethod() {

        @Override
        public void addCriteria(DynamicQuery dynamicQuery) {
            Criterion modifiedDateCriterion = portletDataContext.getDateRangeCriteria("modifiedDate");

            if (modifiedDateCriterion != null) {
                Conjunction conjunction = RestrictionsFactoryUtil.conjunction();

                conjunction.add(modifiedDateCriterion);

                Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

                disjunction.add(RestrictionsFactoryUtil.gtProperty("modifiedDate", "lastPublishDate"));

                Property lastPublishDateProperty = PropertyFactoryUtil.forName("lastPublishDate");

                disjunction.add(lastPublishDateProperty.isNull());

                conjunction.add(disjunction);

                modifiedDateCriterion = conjunction;
            }

            Criterion statusDateCriterion = portletDataContext.getDateRangeCriteria("statusDate");

            if ((modifiedDateCriterion != null) && (statusDateCriterion != null)) {

                Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

                disjunction.add(modifiedDateCriterion);
                disjunction.add(statusDateCriterion);

                dynamicQuery.add(disjunction);
            }

            StagedModelType stagedModelType = exportActionableDynamicQuery.getStagedModelType();

            long referrerClassNameId = stagedModelType.getReferrerClassNameId();

            Property classNameIdProperty = PropertyFactoryUtil.forName("classNameId");

            if ((referrerClassNameId != StagedModelType.REFERRER_CLASS_NAME_ID_ALL)
                    && (referrerClassNameId != StagedModelType.REFERRER_CLASS_NAME_ID_ANY)) {

                dynamicQuery.add(classNameIdProperty.eq(stagedModelType.getReferrerClassNameId()));
            } else if (referrerClassNameId == StagedModelType.REFERRER_CLASS_NAME_ID_ANY) {

                dynamicQuery.add(classNameIdProperty.isNotNull());
            }

            Property workflowStatusProperty = PropertyFactoryUtil.forName("status");

            if (portletDataContext.isInitialPublication()) {
                dynamicQuery.add(workflowStatusProperty.ne(WorkflowConstants.STATUS_IN_TRASH));
            } else {
                StagedModelDataHandler<?> stagedModelDataHandler = StagedModelDataHandlerRegistryUtil
                        .getStagedModelDataHandler(DummyFolder.class.getName());

                dynamicQuery.add(workflowStatusProperty.in(stagedModelDataHandler.getExportableStatuses()));
            }
        }

    });

    exportActionableDynamicQuery.setCompanyId(portletDataContext.getCompanyId());

    exportActionableDynamicQuery.setGroupId(portletDataContext.getScopeGroupId());

    exportActionableDynamicQuery
            .setPerformActionMethod(new ActionableDynamicQuery.PerformActionMethod<DummyFolder>() {

                @Override
                public void performAction(DummyFolder dummyFolder) throws PortalException {

                    StagedModelDataHandlerUtil.exportStagedModel(portletDataContext, dummyFolder);
                }

            });

    exportActionableDynamicQuery.setStagedModelType(new StagedModelType(
            portal.getClassNameId(DummyFolder.class.getName()), StagedModelType.REFERRER_CLASS_NAME_ID_ALL));

    return exportActionableDynamicQuery;
}

From source file:com.liferay.exportimport.test.util.internal.exportimport.staged.model.repository.DummyReferenceStagedModelRepository.java

License:Open Source License

@Override
public ExportActionableDynamicQuery getExportActionableDynamicQuery(PortletDataContext portletDataContext) {

    final ExportActionableDynamicQuery exportActionableDynamicQuery = new ExportActionableDynamicQuery() {

        @Override//from  w ww  . j a va 2 s.c  o  m
        public long performCount() throws PortalException {
            ManifestSummary manifestSummary = portletDataContext.getManifestSummary();

            StagedModelType stagedModelType = getStagedModelType();

            long modelAdditionCount = _dummyReferences.size();

            manifestSummary.addModelAdditionCount(stagedModelType, modelAdditionCount);

            manifestSummary.addModelDeletionCount(stagedModelType, 0);

            return modelAdditionCount;
        }

        @Override
        protected Projection getCountProjection() {
            return ProjectionFactoryUtil.countDistinct("resourcePrimKey");
        }

    };

    exportActionableDynamicQuery.setBaseLocalService(new DummyReferenceBaseLocalServiceImpl());

    Class<?> clazz = getClass();

    exportActionableDynamicQuery.setClassLoader(clazz.getClassLoader());

    exportActionableDynamicQuery.setModelClass(DummyReference.class);

    exportActionableDynamicQuery.setPrimaryKeyPropertyName("id");

    exportActionableDynamicQuery.setAddCriteriaMethod(new ActionableDynamicQuery.AddCriteriaMethod() {

        @Override
        public void addCriteria(DynamicQuery dynamicQuery) {
            Criterion modifiedDateCriterion = portletDataContext.getDateRangeCriteria("modifiedDate");

            if (modifiedDateCriterion != null) {
                Conjunction conjunction = RestrictionsFactoryUtil.conjunction();

                conjunction.add(modifiedDateCriterion);

                Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

                disjunction.add(RestrictionsFactoryUtil.gtProperty("modifiedDate", "lastPublishDate"));

                Property lastPublishDateProperty = PropertyFactoryUtil.forName("lastPublishDate");

                disjunction.add(lastPublishDateProperty.isNull());

                conjunction.add(disjunction);

                modifiedDateCriterion = conjunction;
            }

            Criterion statusDateCriterion = portletDataContext.getDateRangeCriteria("statusDate");

            if ((modifiedDateCriterion != null) && (statusDateCriterion != null)) {

                Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

                disjunction.add(modifiedDateCriterion);
                disjunction.add(statusDateCriterion);

                dynamicQuery.add(disjunction);
            }

            StagedModelType stagedModelType = exportActionableDynamicQuery.getStagedModelType();

            long referrerClassNameId = stagedModelType.getReferrerClassNameId();

            Property classNameIdProperty = PropertyFactoryUtil.forName("classNameId");

            if ((referrerClassNameId != StagedModelType.REFERRER_CLASS_NAME_ID_ALL)
                    && (referrerClassNameId != StagedModelType.REFERRER_CLASS_NAME_ID_ANY)) {

                dynamicQuery.add(classNameIdProperty.eq(stagedModelType.getReferrerClassNameId()));
            } else if (referrerClassNameId == StagedModelType.REFERRER_CLASS_NAME_ID_ANY) {

                dynamicQuery.add(classNameIdProperty.isNotNull());
            }

            Property workflowStatusProperty = PropertyFactoryUtil.forName("status");

            if (portletDataContext.isInitialPublication()) {
                dynamicQuery.add(workflowStatusProperty.ne(WorkflowConstants.STATUS_IN_TRASH));
            } else {
                StagedModelDataHandler<?> stagedModelDataHandler = StagedModelDataHandlerRegistryUtil
                        .getStagedModelDataHandler(DummyReference.class.getName());

                dynamicQuery.add(workflowStatusProperty.in(stagedModelDataHandler.getExportableStatuses()));
            }
        }

    });

    exportActionableDynamicQuery.setCompanyId(portletDataContext.getCompanyId());

    exportActionableDynamicQuery.setGroupId(portletDataContext.getScopeGroupId());

    exportActionableDynamicQuery
            .setPerformActionMethod(new ActionableDynamicQuery.PerformActionMethod<DummyReference>() {

                @Override
                public void performAction(DummyReference dummyReference) throws PortalException {

                    StagedModelDataHandlerUtil.exportStagedModel(portletDataContext, dummyReference);
                }

            });

    exportActionableDynamicQuery.setStagedModelType(new StagedModelType(
            portal.getClassNameId(DummyReference.class.getName()), StagedModelType.REFERRER_CLASS_NAME_ID_ALL));

    return exportActionableDynamicQuery;
}

From source file:com.liferay.exportimport.test.util.internal.exportimport.staged.model.repository.DummyStagedModelRepository.java

License:Open Source License

@Override
public ExportActionableDynamicQuery getExportActionableDynamicQuery(PortletDataContext portletDataContext) {

    final ExportActionableDynamicQuery exportActionableDynamicQuery = new ExportActionableDynamicQuery() {

        @Override/* ww w .  j a v  a  2 s. c o m*/
        public long performCount() throws PortalException {
            ManifestSummary manifestSummary = portletDataContext.getManifestSummary();

            StagedModelType stagedModelType = getStagedModelType();

            long modelAdditionCount = _dummies.size();

            manifestSummary.addModelAdditionCount(stagedModelType, modelAdditionCount);

            manifestSummary.addModelDeletionCount(stagedModelType, 0);

            return modelAdditionCount;
        }

        @Override
        protected Projection getCountProjection() {
            return ProjectionFactoryUtil.countDistinct("resourcePrimKey");
        }

    };

    exportActionableDynamicQuery.setBaseLocalService(new DummyBaseLocalServiceImpl());

    Class<?> clazz = getClass();

    exportActionableDynamicQuery.setClassLoader(clazz.getClassLoader());

    exportActionableDynamicQuery.setModelClass(Dummy.class);

    exportActionableDynamicQuery.setPrimaryKeyPropertyName("id");

    exportActionableDynamicQuery.setAddCriteriaMethod(new ActionableDynamicQuery.AddCriteriaMethod() {

        @Override
        public void addCriteria(DynamicQuery dynamicQuery) {
            Criterion modifiedDateCriterion = portletDataContext.getDateRangeCriteria("modifiedDate");

            if (modifiedDateCriterion != null) {
                Conjunction conjunction = RestrictionsFactoryUtil.conjunction();

                conjunction.add(modifiedDateCriterion);

                Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

                disjunction.add(RestrictionsFactoryUtil.gtProperty("modifiedDate", "lastPublishDate"));

                Property lastPublishDateProperty = PropertyFactoryUtil.forName("lastPublishDate");

                disjunction.add(lastPublishDateProperty.isNull());

                conjunction.add(disjunction);

                modifiedDateCriterion = conjunction;
            }

            Criterion statusDateCriterion = portletDataContext.getDateRangeCriteria("statusDate");

            if ((modifiedDateCriterion != null) && (statusDateCriterion != null)) {

                Disjunction disjunction = RestrictionsFactoryUtil.disjunction();

                disjunction.add(modifiedDateCriterion);
                disjunction.add(statusDateCriterion);

                dynamicQuery.add(disjunction);
            }

            StagedModelType stagedModelType = exportActionableDynamicQuery.getStagedModelType();

            long referrerClassNameId = stagedModelType.getReferrerClassNameId();

            Property classNameIdProperty = PropertyFactoryUtil.forName("classNameId");

            if ((referrerClassNameId != StagedModelType.REFERRER_CLASS_NAME_ID_ALL)
                    && (referrerClassNameId != StagedModelType.REFERRER_CLASS_NAME_ID_ANY)) {

                dynamicQuery.add(classNameIdProperty.eq(stagedModelType.getReferrerClassNameId()));
            } else if (referrerClassNameId == StagedModelType.REFERRER_CLASS_NAME_ID_ANY) {

                dynamicQuery.add(classNameIdProperty.isNotNull());
            }

            Property workflowStatusProperty = PropertyFactoryUtil.forName("status");

            if (portletDataContext.isInitialPublication()) {
                dynamicQuery.add(workflowStatusProperty.ne(WorkflowConstants.STATUS_IN_TRASH));
            } else {
                StagedModelDataHandler<?> stagedModelDataHandler = StagedModelDataHandlerRegistryUtil
                        .getStagedModelDataHandler(Dummy.class.getName());

                dynamicQuery.add(workflowStatusProperty.in(stagedModelDataHandler.getExportableStatuses()));
            }
        }

    });

    exportActionableDynamicQuery.setCompanyId(portletDataContext.getCompanyId());

    exportActionableDynamicQuery.setGroupId(portletDataContext.getScopeGroupId());

    exportActionableDynamicQuery
            .setPerformActionMethod(new ActionableDynamicQuery.PerformActionMethod<Dummy>() {

                @Override
                public void performAction(Dummy dummy) throws PortalException {
                    StagedModelDataHandlerUtil.exportStagedModel(portletDataContext, dummy);
                }

            });

    exportActionableDynamicQuery.setStagedModelType(new StagedModelType(
            portal.getClassNameId(Dummy.class.getName()), StagedModelType.REFERRER_CLASS_NAME_ID_ALL));

    return exportActionableDynamicQuery;
}