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