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 import com.liferay.portal.util.PortletKeys;
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
058 @Override
059 protected PortletPreferences doDeleteData(
060 PortletDataContext portletDataContext, String portletId,
061 PortletPreferences portletPreferences)
062 throws Exception {
063
064 if (portletDataContext.addPrimaryKey(
065 LayoutSetPrototypePortletDataHandler.class, "deleteData")) {
066
067 return portletPreferences;
068 }
069
070 LayoutSetPrototypeLocalServiceUtil.deleteNondefaultLayoutSetPrototypes(
071 portletDataContext.getCompanyId());
072
073 return portletPreferences;
074 }
075
076 @Override
077 protected String doExportData(
078 final PortletDataContext portletDataContext, String portletId,
079 PortletPreferences portletPreferences)
080 throws Exception {
081
082 portletDataContext.addPermissions(
083 PortletKeys.PORTAL, portletDataContext.getCompanyId());
084
085 Element rootElement = addExportDataRootElement(portletDataContext);
086
087 rootElement.addAttribute(
088 "group-id", String.valueOf(portletDataContext.getScopeGroupId()));
089
090 ActionableDynamicQuery actionableDynamicQuery =
091 new LayoutSetPrototypeExportActionableDynamicQuery(
092 portletDataContext);
093
094 actionableDynamicQuery.performActions();
095
096 return getExportDataRootElementString(rootElement);
097 }
098
099 @Override
100 protected PortletPreferences doImportData(
101 PortletDataContext portletDataContext, String portletId,
102 PortletPreferences portletPreferences, String data)
103 throws Exception {
104
105 portletDataContext.importPermissions(
106 PortletKeys.PORTAL, portletDataContext.getSourceCompanyId(),
107 portletDataContext.getCompanyId());
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 new LayoutSetPrototypeExportActionableDynamicQuery(
132 portletDataContext);
133
134 layoutSetPrototypeExportActionableDynamicQuery.performCount();
135 }
136
137 }