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.addPermissions(
082 DDLPermission.RESOURCE_NAME, portletDataContext.getScopeGroupId());
083
084 ActionableDynamicQuery actionableDynamicQuery =
085 new DDLRecordSetExportActionableDynamicQuery(portletDataContext);
086
087 actionableDynamicQuery.performActions();
088
089 return getExportDataRootElementString(rootElement);
090 }
091
092 @Override
093 protected PortletPreferences doImportData(
094 PortletDataContext portletDataContext, String portletId,
095 PortletPreferences portletPreferences, String data)
096 throws Exception {
097
098 if (!portletDataContext.getBooleanParameter(NAMESPACE, "record-sets")) {
099 return null;
100 }
101
102 portletDataContext.importPermissions(
103 DDLPermission.RESOURCE_NAME, portletDataContext.getSourceGroupId(),
104 portletDataContext.getScopeGroupId());
105
106 Element recordSetsElement =
107 portletDataContext.getImportDataGroupElement(DDLRecordSet.class);
108
109 List<Element> recordSetElements = recordSetsElement.elements();
110
111 for (Element recordSetElement : recordSetElements) {
112 StagedModelDataHandlerUtil.importStagedModel(
113 portletDataContext, recordSetElement);
114 }
115
116 return portletPreferences;
117 }
118
119 @Override
120 protected void doPrepareManifestSummary(
121 PortletDataContext portletDataContext,
122 PortletPreferences portletPreferences)
123 throws Exception {
124
125 ActionableDynamicQuery actionableDynamicQuery =
126 new DDLRecordSetExportActionableDynamicQuery(portletDataContext);
127
128 actionableDynamicQuery.performCount();
129 }
130
131 }