001
014
015 package com.liferay.portlet.dynamicdatalists.lar;
016
017 import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
018 import com.liferay.portal.kernel.lar.BasePortletDataHandler;
019 import com.liferay.portal.kernel.lar.PortletDataContext;
020 import com.liferay.portal.kernel.lar.PortletDataHandlerBoolean;
021 import com.liferay.portal.kernel.lar.StagedModelDataHandlerUtil;
022 import com.liferay.portal.kernel.lar.StagedModelType;
023 import com.liferay.portal.kernel.xml.Element;
024 import com.liferay.portlet.dynamicdatalists.model.DDLRecordSet;
025 import com.liferay.portlet.dynamicdatalists.service.DDLRecordSetLocalServiceUtil;
026 import com.liferay.portlet.dynamicdatalists.service.permission.DDLPermission;
027 import com.liferay.portlet.dynamicdatalists.service.persistence.DDLRecordSetExportActionableDynamicQuery;
028
029 import java.util.List;
030
031 import javax.portlet.PortletPreferences;
032
033
036 public class DDLPortletDataHandler extends BasePortletDataHandler {
037
038 public static final String NAMESPACE = "dynamic_data_lists";
039
040 public DDLPortletDataHandler() {
041 setDataLocalized(true);
042 setDeletionSystemEventStagedModelTypes(
043 new StagedModelType(DDLRecordSet.class));
044 setExportControls(
045 new PortletDataHandlerBoolean(
046 NAMESPACE, "record-sets", true, false, null,
047 DDLRecordSet.class.getName()));
048 setImportControls(getExportControls());
049 }
050
051 @Override
052 protected PortletPreferences doDeleteData(
053 PortletDataContext portletDataContext, String portletId,
054 PortletPreferences portletPreferences)
055 throws Exception {
056
057 if (portletDataContext.addPrimaryKey(
058 DDLPortletDataHandler.class, "deleteData")) {
059
060 return portletPreferences;
061 }
062
063 DDLRecordSetLocalServiceUtil.deleteRecordSets(
064 portletDataContext.getScopeGroupId());
065
066 return portletPreferences;
067 }
068
069 @Override
070 protected String doExportData(
071 final PortletDataContext portletDataContext, String portletId,
072 PortletPreferences portletPreferences)
073 throws Exception {
074
075 Element rootElement = addExportDataRootElement(portletDataContext);
076
077 if (!portletDataContext.getBooleanParameter(NAMESPACE, "record-sets")) {
078 return getExportDataRootElementString(rootElement);
079 }
080
081 portletDataContext.addPortletPermissions(DDLPermission.RESOURCE_NAME);
082
083 ActionableDynamicQuery actionableDynamicQuery =
084 new DDLRecordSetExportActionableDynamicQuery(portletDataContext);
085
086 actionableDynamicQuery.performActions();
087
088 return getExportDataRootElementString(rootElement);
089 }
090
091 @Override
092 protected PortletPreferences doImportData(
093 PortletDataContext portletDataContext, String portletId,
094 PortletPreferences portletPreferences, String data)
095 throws Exception {
096
097 if (!portletDataContext.getBooleanParameter(NAMESPACE, "record-sets")) {
098 return null;
099 }
100
101 portletDataContext.importPortletPermissions(
102 DDLPermission.RESOURCE_NAME);
103
104 Element recordSetsElement =
105 portletDataContext.getImportDataGroupElement(DDLRecordSet.class);
106
107 List<Element> recordSetElements = recordSetsElement.elements();
108
109 for (Element recordSetElement : recordSetElements) {
110 StagedModelDataHandlerUtil.importStagedModel(
111 portletDataContext, recordSetElement);
112 }
113
114 return portletPreferences;
115 }
116
117 @Override
118 protected void doPrepareManifestSummary(
119 PortletDataContext portletDataContext,
120 PortletPreferences portletPreferences)
121 throws Exception {
122
123 ActionableDynamicQuery actionableDynamicQuery =
124 new DDLRecordSetExportActionableDynamicQuery(portletDataContext);
125
126 actionableDynamicQuery.performCount();
127 }
128
129 }