001
014
015 package com.liferay.portlet.layoutsetprototypes.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.DataLevel;
020 import com.liferay.portal.kernel.lar.PortletDataContext;
021 import com.liferay.portal.kernel.lar.PortletDataHandlerBoolean;
022 import com.liferay.portal.kernel.lar.PortletDataHandlerControl;
023 import com.liferay.portal.kernel.lar.StagedModelDataHandlerUtil;
024 import com.liferay.portal.kernel.lar.StagedModelType;
025 import com.liferay.portal.kernel.lar.xstream.XStreamAliasRegistryUtil;
026 import com.liferay.portal.kernel.xml.Element;
027 import com.liferay.portal.model.LayoutSetPrototype;
028 import com.liferay.portal.model.impl.LayoutSetPrototypeImpl;
029 import com.liferay.portal.service.LayoutSetPrototypeLocalServiceUtil;
030
031 import java.util.List;
032
033 import javax.portlet.PortletPreferences;
034
035
038 public class LayoutSetPrototypePortletDataHandler
039 extends BasePortletDataHandler {
040
041 public static final String NAMESPACE = "layout_set_prototypes";
042
043 public LayoutSetPrototypePortletDataHandler() {
044 setDataLevel(DataLevel.PORTAL);
045 setDeletionSystemEventStagedModelTypes(
046 new StagedModelType(LayoutSetPrototype.class));
047 setExportControls(
048 new PortletDataHandlerBoolean(
049 NAMESPACE, "site-templates", true, true,
050 new PortletDataHandlerControl[] {
051 new PortletDataHandlerBoolean(
052 NAMESPACE, "page-templates", true, false)
053 },
054 LayoutSetPrototype.class.getName()
055 ));
056
057 XStreamAliasRegistryUtil.register(
058 LayoutSetPrototypeImpl.class, "LayoutSetPrototype");
059 }
060
061 @Override
062 protected PortletPreferences doDeleteData(
063 PortletDataContext portletDataContext, String portletId,
064 PortletPreferences portletPreferences)
065 throws Exception {
066
067 if (portletDataContext.addPrimaryKey(
068 LayoutSetPrototypePortletDataHandler.class, "deleteData")) {
069
070 return portletPreferences;
071 }
072
073 LayoutSetPrototypeLocalServiceUtil.deleteNondefaultLayoutSetPrototypes(
074 portletDataContext.getCompanyId());
075
076 return portletPreferences;
077 }
078
079 @Override
080 protected String doExportData(
081 final PortletDataContext portletDataContext, String portletId,
082 PortletPreferences portletPreferences)
083 throws Exception {
084
085 portletDataContext.addPortalPermissions();
086
087 Element rootElement = addExportDataRootElement(portletDataContext);
088
089 rootElement.addAttribute(
090 "group-id", String.valueOf(portletDataContext.getScopeGroupId()));
091
092 ActionableDynamicQuery actionableDynamicQuery =
093 LayoutSetPrototypeLocalServiceUtil.getExportActionableDynamicQuery(
094 portletDataContext);
095
096 actionableDynamicQuery.performActions();
097
098 return getExportDataRootElementString(rootElement);
099 }
100
101 @Override
102 protected PortletPreferences doImportData(
103 PortletDataContext portletDataContext, String portletId,
104 PortletPreferences portletPreferences, String data)
105 throws Exception {
106
107 portletDataContext.importPortalPermissions();
108
109 Element layoutSetPrototypesElement =
110 portletDataContext.getImportDataGroupElement(
111 LayoutSetPrototype.class);
112
113 List<Element> layoutSetPrototypeElements =
114 layoutSetPrototypesElement.elements();
115
116 for (Element layoutSetPrototypeElement : layoutSetPrototypeElements) {
117 StagedModelDataHandlerUtil.importStagedModel(
118 portletDataContext, layoutSetPrototypeElement);
119 }
120
121 return null;
122 }
123
124 @Override
125 protected void doPrepareManifestSummary(
126 PortletDataContext portletDataContext,
127 PortletPreferences portletPreferences)
128 throws Exception {
129
130 ActionableDynamicQuery layoutSetPrototypeExportActionableDynamicQuery =
131 LayoutSetPrototypeLocalServiceUtil.getExportActionableDynamicQuery(
132 portletDataContext);
133
134 layoutSetPrototypeExportActionableDynamicQuery.performCount();
135 }
136
137 }