001
014
015 package com.liferay.portlet.wiki.service.persistence;
016
017 import com.liferay.portal.kernel.dao.orm.DynamicQuery;
018 import com.liferay.portal.kernel.dao.orm.Projection;
019 import com.liferay.portal.kernel.dao.orm.ProjectionFactoryUtil;
020 import com.liferay.portal.kernel.dao.orm.Property;
021 import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil;
022 import com.liferay.portal.kernel.exception.PortalException;
023 import com.liferay.portal.kernel.exception.SystemException;
024 import com.liferay.portal.kernel.lar.ExportImportHelperUtil;
025 import com.liferay.portal.kernel.lar.ManifestSummary;
026 import com.liferay.portal.kernel.lar.PortletDataContext;
027 import com.liferay.portal.kernel.lar.StagedModelDataHandler;
028 import com.liferay.portal.kernel.lar.StagedModelDataHandlerRegistryUtil;
029 import com.liferay.portal.kernel.lar.StagedModelDataHandlerUtil;
030 import com.liferay.portal.kernel.lar.StagedModelType;
031 import com.liferay.portal.util.PortalUtil;
032
033 import com.liferay.portlet.wiki.model.WikiPage;
034
035
039 public class WikiPageExportActionableDynamicQuery
040 extends WikiPageActionableDynamicQuery {
041 public WikiPageExportActionableDynamicQuery(
042 PortletDataContext portletDataContext) throws SystemException {
043 _portletDataContext = portletDataContext;
044
045 setCompanyId(_portletDataContext.getCompanyId());
046
047 setGroupId(_portletDataContext.getScopeGroupId());
048 }
049
050 @Override
051 public long performCount() throws PortalException, SystemException {
052 ManifestSummary manifestSummary = _portletDataContext.getManifestSummary();
053
054 StagedModelType stagedModelType = getStagedModelType();
055
056 long modelAdditionCount = super.performCount();
057
058 manifestSummary.addModelAdditionCount(stagedModelType.toString(),
059 modelAdditionCount);
060
061 long modelDeletionCount = ExportImportHelperUtil.getModelDeletionCount(_portletDataContext,
062 stagedModelType);
063
064 manifestSummary.addModelDeletionCount(stagedModelType.toString(),
065 modelDeletionCount);
066
067 return modelAdditionCount;
068 }
069
070 @Override
071 protected void addCriteria(DynamicQuery dynamicQuery) {
072 _portletDataContext.addDateRangeCriteria(dynamicQuery, "modifiedDate");
073
074 StagedModelDataHandler<?> stagedModelDataHandler = StagedModelDataHandlerRegistryUtil.getStagedModelDataHandler(WikiPage.class.getName());
075
076 Property workflowStatusProperty = PropertyFactoryUtil.forName("status");
077
078 dynamicQuery.add(workflowStatusProperty.in(
079 stagedModelDataHandler.getExportableStatuses()));
080 }
081
082 @Override
083 protected Projection getCountProjection() {
084 return ProjectionFactoryUtil.countDistinct("resourcePrimKey");
085 }
086
087 protected StagedModelType getStagedModelType() {
088 return new StagedModelType(PortalUtil.getClassNameId(
089 WikiPage.class.getName()));
090 }
091
092 @Override
093 @SuppressWarnings("unused")
094 protected void performAction(Object object)
095 throws PortalException, SystemException {
096 WikiPage stagedModel = (WikiPage)object;
097
098 StagedModelDataHandlerUtil.exportStagedModel(_portletDataContext,
099 stagedModel);
100 }
101
102 private PortletDataContext _portletDataContext;
103 }