001
014
015 package com.liferay.portlet.asset.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.lar.xstream.XStreamAliasRegistryUtil;
024 import com.liferay.portal.kernel.xml.Element;
025 import com.liferay.portlet.asset.model.AssetCategory;
026 import com.liferay.portlet.asset.model.AssetVocabulary;
027 import com.liferay.portlet.asset.model.impl.AssetCategoryImpl;
028 import com.liferay.portlet.asset.model.impl.AssetVocabularyImpl;
029 import com.liferay.portlet.asset.service.AssetCategoryLocalServiceUtil;
030 import com.liferay.portlet.asset.service.AssetVocabularyLocalServiceUtil;
031
032 import java.util.List;
033
034 import javax.portlet.PortletPreferences;
035
036
039 public class AssetCategoryPortletDataHandler extends BasePortletDataHandler {
040
041 public static final String NAMESPACE = "asset_category";
042
043 public AssetCategoryPortletDataHandler() {
044 setDataAlwaysStaged(true);
045 setDeletionSystemEventStagedModelTypes(
046 new StagedModelType(AssetCategory.class),
047 new StagedModelType(AssetVocabulary.class));
048 setExportControls(
049 new PortletDataHandlerBoolean(
050 NAMESPACE, "categories", true, false, null,
051 AssetCategory.class.getName()),
052 new PortletDataHandlerBoolean(
053 NAMESPACE, "vocabularies", true, false, null,
054 AssetVocabulary.class.getName()));
055 setPublishToLiveByDefault(true);
056
057 XStreamAliasRegistryUtil.register(
058 AssetCategoryImpl.class, "AssetCategory");
059 XStreamAliasRegistryUtil.register(
060 AssetVocabularyImpl.class, "AssetVocabulary");
061 }
062
063 @Override
064 protected PortletPreferences doDeleteData(
065 PortletDataContext portletDataContext, String portletId,
066 PortletPreferences portletPreferences)
067 throws Exception {
068
069 if (portletDataContext.addPrimaryKey(
070 AssetCategoryPortletDataHandler.class, "deleteData")) {
071
072 return portletPreferences;
073 }
074
075 AssetVocabularyLocalServiceUtil.deleteVocabularies(
076 portletDataContext.getScopeGroupId());
077
078 return portletPreferences;
079 }
080
081 @Override
082 protected String doExportData(
083 PortletDataContext portletDataContext, String portletId,
084 PortletPreferences portletPreferences)
085 throws Exception {
086
087 Element rootElement = addExportDataRootElement(portletDataContext);
088
089 rootElement.addAttribute(
090 "group-id", String.valueOf(portletDataContext.getScopeGroupId()));
091
092 if (portletDataContext.getBooleanParameter(NAMESPACE, "categories")) {
093 ActionableDynamicQuery categoryActionableDynamicQuery =
094 getCategoryActionableDynamicQuery(portletDataContext);
095
096 categoryActionableDynamicQuery.performActions();
097 }
098
099 if (portletDataContext.getBooleanParameter(NAMESPACE, "vocabularies")) {
100 ActionableDynamicQuery vocabularyActionableDynamicQuery =
101 getVocabularyActionableDynamicQuery(portletDataContext);
102
103 vocabularyActionableDynamicQuery.performActions();
104 }
105
106 return getExportDataRootElementString(rootElement);
107 }
108
109 @Override
110 protected PortletPreferences doImportData(
111 PortletDataContext portletDataContext, String portletId,
112 PortletPreferences portletPreferences, String data)
113 throws Exception {
114
115 if (portletDataContext.getBooleanParameter(NAMESPACE, "categories")) {
116 Element categoriesElement =
117 portletDataContext.getImportDataGroupElement(
118 AssetCategory.class);
119
120 List<Element> categoryElements = categoriesElement.elements();
121
122 for (Element categoryElement : categoryElements) {
123 StagedModelDataHandlerUtil.importStagedModel(
124 portletDataContext, categoryElement);
125 }
126 }
127
128 if (portletDataContext.getBooleanParameter(NAMESPACE, "vocabularies")) {
129 Element vocabulariesElement =
130 portletDataContext.getImportDataGroupElement(
131 AssetVocabulary.class);
132
133 List<Element> vocabularyElements = vocabulariesElement.elements();
134
135 for (Element vocabularyElement : vocabularyElements) {
136 StagedModelDataHandlerUtil.importStagedModel(
137 portletDataContext, vocabularyElement);
138 }
139 }
140
141 return null;
142 }
143
144 @Override
145 protected void doPrepareManifestSummary(
146 PortletDataContext portletDataContext,
147 PortletPreferences portletPreferences)
148 throws Exception {
149
150 ActionableDynamicQuery categoryActionableDynamicQuery =
151 getCategoryActionableDynamicQuery(portletDataContext);
152
153 categoryActionableDynamicQuery.performCount();
154
155 ActionableDynamicQuery vocabularyActionableDynamicQuery =
156 getVocabularyActionableDynamicQuery(portletDataContext);
157
158 vocabularyActionableDynamicQuery.performCount();
159 }
160
161 protected ActionableDynamicQuery getCategoryActionableDynamicQuery(
162 final PortletDataContext portletDataContext) {
163
164 ActionableDynamicQuery actionableDynamicQuery =
165 AssetCategoryLocalServiceUtil.getExportActionableDynamicQuery(
166 portletDataContext);
167
168
169
170 actionableDynamicQuery.setAddCriteriaMethod(null);
171
172 return actionableDynamicQuery;
173 }
174
175 protected ActionableDynamicQuery getVocabularyActionableDynamicQuery(
176 final PortletDataContext portletDataContext) {
177
178 ActionableDynamicQuery actionableDynamicQuery =
179 AssetVocabularyLocalServiceUtil.getExportActionableDynamicQuery(
180 portletDataContext);
181
182
183
184 actionableDynamicQuery.setAddCriteriaMethod(null);
185
186 return actionableDynamicQuery;
187 }
188
189 }