001
014
015 package com.liferay.portlet.messageboards.service.persistence;
016
017 import com.liferay.portal.kernel.dao.orm.Criterion;
018 import com.liferay.portal.kernel.dao.orm.Disjunction;
019 import com.liferay.portal.kernel.dao.orm.DynamicQuery;
020 import com.liferay.portal.kernel.dao.orm.Property;
021 import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil;
022 import com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil;
023 import com.liferay.portal.kernel.exception.PortalException;
024 import com.liferay.portal.kernel.exception.SystemException;
025 import com.liferay.portal.kernel.lar.ExportImportHelperUtil;
026 import com.liferay.portal.kernel.lar.ManifestSummary;
027 import com.liferay.portal.kernel.lar.PortletDataContext;
028 import com.liferay.portal.kernel.lar.StagedModelDataHandler;
029 import com.liferay.portal.kernel.lar.StagedModelDataHandlerRegistryUtil;
030 import com.liferay.portal.kernel.lar.StagedModelDataHandlerUtil;
031 import com.liferay.portal.kernel.lar.StagedModelType;
032 import com.liferay.portal.util.PortalUtil;
033
034 import com.liferay.portlet.messageboards.model.MBMessage;
035
036
040 public class MBMessageExportActionableDynamicQuery
041 extends MBMessageActionableDynamicQuery {
042 public MBMessageExportActionableDynamicQuery(
043 PortletDataContext portletDataContext) throws SystemException {
044 _portletDataContext = portletDataContext;
045
046 setCompanyId(_portletDataContext.getCompanyId());
047
048 setGroupId(_portletDataContext.getScopeGroupId());
049 }
050
051 @Override
052 public long performCount() throws PortalException, SystemException {
053 ManifestSummary manifestSummary = _portletDataContext.getManifestSummary();
054
055 StagedModelType stagedModelType = getStagedModelType();
056
057 long modelAdditionCount = super.performCount();
058
059 manifestSummary.addModelAdditionCount(stagedModelType.toString(),
060 modelAdditionCount);
061
062 long modelDeletionCount = ExportImportHelperUtil.getModelDeletionCount(_portletDataContext,
063 stagedModelType);
064
065 manifestSummary.addModelDeletionCount(stagedModelType.toString(),
066 modelDeletionCount);
067
068 return modelAdditionCount;
069 }
070
071 @Override
072 protected void addCriteria(DynamicQuery dynamicQuery) {
073 Criterion modifiedDateCriterion = _portletDataContext.getDateRangeCriteria(
074 "modifiedDate");
075 Criterion statusDateCriterion = _portletDataContext.getDateRangeCriteria(
076 "statusDate");
077
078 if ((modifiedDateCriterion != null) && (statusDateCriterion != null)) {
079 Disjunction disjunction = RestrictionsFactoryUtil.disjunction();
080
081 disjunction.add(modifiedDateCriterion);
082 disjunction.add(statusDateCriterion);
083
084 dynamicQuery.add(disjunction);
085 }
086
087 if (getStagedModelType().getReferrerClassNameId() >= 0) {
088 Property classNameIdProperty = PropertyFactoryUtil.forName(
089 "classNameId");
090
091 dynamicQuery.add(classNameIdProperty.eq(getStagedModelType()
092 .getReferrerClassNameId()));
093 }
094
095 StagedModelDataHandler<?> stagedModelDataHandler = StagedModelDataHandlerRegistryUtil.getStagedModelDataHandler(MBMessage.class.getName());
096
097 Property workflowStatusProperty = PropertyFactoryUtil.forName("status");
098
099 dynamicQuery.add(workflowStatusProperty.in(
100 stagedModelDataHandler.getExportableStatuses()));
101 }
102
103 protected StagedModelType getStagedModelType() {
104 return new StagedModelType(PortalUtil.getClassNameId(
105 MBMessage.class.getName()));
106 }
107
108 @Override
109 @SuppressWarnings("unused")
110 protected void performAction(Object object)
111 throws PortalException, SystemException {
112 MBMessage stagedModel = (MBMessage)object;
113
114 StagedModelDataHandlerUtil.exportStagedModel(_portletDataContext,
115 stagedModel);
116 }
117
118 private PortletDataContext _portletDataContext;
119 }