001
014
015 package com.liferay.portal.kernel.lar;
016
017 import com.liferay.portal.kernel.util.LongWrapper;
018 import com.liferay.portal.kernel.util.MapUtil;
019 import com.liferay.portal.kernel.util.StringBundler;
020 import com.liferay.portal.kernel.util.StringPool;
021 import com.liferay.portal.kernel.util.Validator;
022 import com.liferay.portal.model.ClassedModel;
023 import com.liferay.portal.model.Portlet;
024
025 import java.io.Serializable;
026
027 import java.util.ArrayList;
028 import java.util.Collection;
029 import java.util.Date;
030 import java.util.HashMap;
031 import java.util.HashSet;
032 import java.util.List;
033 import java.util.Map;
034 import java.util.Set;
035
036
040 public class ManifestSummary implements Serializable {
041
042 public static String getManifestSummaryKey(
043 String modelName, String referrerModelName) {
044
045 if (Validator.isNull(referrerModelName) ||
046 modelName.equals(referrerModelName)) {
047
048 return modelName;
049 }
050
051 return modelName.concat(StringPool.POUND).concat(referrerModelName);
052 }
053
054 public void addConfigurationPortlet(Portlet portlet, String[] options) {
055 String rootPortletId = portlet.getRootPortletId();
056
057 if (!_configurationPortletOptions.containsKey(rootPortletId)) {
058 _configurationPortlets.add(portlet);
059 _configurationPortletOptions.put(rootPortletId, options);
060 }
061 }
062
063 public void addDataPortlet(Portlet portlet) {
064 String rootPortletId = portlet.getRootPortletId();
065
066 if (!_dataRootPortletIds.contains(rootPortletId)) {
067 _dataPortlets.add(portlet);
068 _dataRootPortletIds.add(rootPortletId);
069 }
070 }
071
072 public void addModelAdditionCount(
073 StagedModelType stagedModelType, long count) {
074
075 addModelAdditionCount(stagedModelType.toString(), count);
076 }
077
078 public void addModelAdditionCount(String manifestSummaryKey, long count) {
079 LongWrapper modelAdditionCounter = _modelAdditionCounters.get(
080 manifestSummaryKey);
081
082 if (modelAdditionCounter == null) {
083 modelAdditionCounter = new LongWrapper();
084
085 _modelAdditionCounters.put(
086 manifestSummaryKey, modelAdditionCounter);
087 }
088
089 modelAdditionCounter.setValue(count);
090
091 _manifestSummaryKeys.add(manifestSummaryKey);
092 }
093
094 public void addModelDeletionCount(String manifestSummaryKey, long count) {
095 LongWrapper modelDeletionCounter = _modelDeletionCounters.get(
096 manifestSummaryKey);
097
098 if (modelDeletionCounter == null) {
099 modelDeletionCounter = new LongWrapper();
100
101 _modelDeletionCounters.put(
102 manifestSummaryKey, modelDeletionCounter);
103 }
104
105 modelDeletionCounter.setValue(count);
106
107 _manifestSummaryKeys.add(manifestSummaryKey);
108 }
109
110 public String[] getConfigurationPortletOptions(String rootPortletId) {
111 return _configurationPortletOptions.get(rootPortletId);
112 }
113
114 public List<Portlet> getConfigurationPortlets() {
115 return _configurationPortlets;
116 }
117
118 public List<Portlet> getDataPortlets() {
119 return _dataPortlets;
120 }
121
122 public Date getExportDate() {
123 return _exportDate;
124 }
125
126 public Collection<String> getManifestSummaryKeys() {
127 return _manifestSummaryKeys;
128 }
129
130 public long getModelAdditionCount(Class<? extends ClassedModel> clazz) {
131 return getModelAdditionCount(clazz, clazz);
132 }
133
134 public long getModelAdditionCount(
135 Class<? extends ClassedModel> clazz,
136 Class<? extends ClassedModel> referrerClass) {
137
138 return getModelAdditionCount(clazz.getName(), referrerClass.getName());
139 }
140
141 public long getModelAdditionCount(String manifestSummaryKey) {
142 if (!_modelAdditionCounters.containsKey(manifestSummaryKey)) {
143 return -1;
144 }
145
146 LongWrapper modelAdditionCounter = _modelAdditionCounters.get(
147 manifestSummaryKey);
148
149 return modelAdditionCounter.getValue();
150 }
151
152 public long getModelAdditionCount(
153 String className, String referrerClassName) {
154
155 String manifestSummaryKey = getManifestSummaryKey(
156 className, referrerClassName);
157
158 return getModelAdditionCount(manifestSummaryKey);
159 }
160
161 public Map<String, LongWrapper> getModelAdditionCounters() {
162 return _modelAdditionCounters;
163 }
164
165 public long getModelDeletionCount() {
166 long modelDeletionCount = -1;
167
168 for (String manifestSummaryKey : _manifestSummaryKeys) {
169 long manifestSummaryKeyModelDeletionCount = getModelDeletionCount(
170 manifestSummaryKey);
171
172 if (manifestSummaryKeyModelDeletionCount == -1) {
173 continue;
174 }
175
176 if (modelDeletionCount == -1) {
177 modelDeletionCount = manifestSummaryKeyModelDeletionCount;
178 }
179 else {
180 modelDeletionCount += manifestSummaryKeyModelDeletionCount;
181 }
182 }
183
184 return modelDeletionCount;
185 }
186
187 public long getModelDeletionCount(Class<? extends ClassedModel> clazz) {
188 return getModelDeletionCount(clazz.getName());
189 }
190
191 public long getModelDeletionCount(StagedModelType[] stagedModelTypes) {
192 if (Validator.isNull(stagedModelTypes)) {
193 return 0;
194 }
195
196 long modelDeletionCount = -1;
197
198 for (StagedModelType stagedModelType : stagedModelTypes) {
199 long stagedModelTypeModelDeletionCount = getModelDeletionCount(
200 stagedModelType.toString());
201
202 if (stagedModelTypeModelDeletionCount == -1) {
203 continue;
204 }
205
206 if (modelDeletionCount == -1) {
207 modelDeletionCount = stagedModelTypeModelDeletionCount;
208 }
209 else {
210 modelDeletionCount += stagedModelTypeModelDeletionCount;
211 }
212 }
213
214 return modelDeletionCount;
215 }
216
217 public long getModelDeletionCount(String modelName) {
218 if (!_modelDeletionCounters.containsKey(modelName)) {
219 return -1;
220 }
221
222 LongWrapper modelDeletionCounter = _modelDeletionCounters.get(
223 modelName);
224
225 return modelDeletionCounter.getValue();
226 }
227
228 public Map<String, LongWrapper> getModelDeletionCounters() {
229 return _modelDeletionCounters;
230 }
231
232 public void incrementModelAdditionCount(StagedModelType stagedModelType) {
233 String manifestSummaryKey = stagedModelType.toString();
234
235 if (!_modelAdditionCounters.containsKey(manifestSummaryKey)) {
236 _modelAdditionCounters.put(manifestSummaryKey, new LongWrapper(1));
237
238 _manifestSummaryKeys.add(manifestSummaryKey);
239
240 return;
241 }
242
243 LongWrapper modelAdditionCounter = _modelAdditionCounters.get(
244 manifestSummaryKey);
245
246 modelAdditionCounter.increment();
247 }
248
249 public void incrementModelDeletionCount(StagedModelType stagedModelType) {
250 String manifestSummaryKey = stagedModelType.toString();
251
252 if (!_modelDeletionCounters.containsKey(manifestSummaryKey)) {
253 _modelDeletionCounters.put(manifestSummaryKey, new LongWrapper(1));
254
255 _manifestSummaryKeys.add(manifestSummaryKey);
256
257 return;
258 }
259
260 LongWrapper modelDeletionCounter = _modelDeletionCounters.get(
261 manifestSummaryKey);
262
263 modelDeletionCounter.increment();
264 }
265
266 public void setExportDate(Date exportDate) {
267 _exportDate = exportDate;
268 }
269
270 @Override
271 public String toString() {
272 StringBundler sb = new StringBundler(5);
273
274 sb.append("{modelAdditionCounters=");
275 sb.append(MapUtil.toString(_modelAdditionCounters));
276 sb.append(", modelDeletionCounters=");
277 sb.append(MapUtil.toString(_modelDeletionCounters));
278 sb.append("}");
279
280 return sb.toString();
281 }
282
283 private Map<String, String[]> _configurationPortletOptions =
284 new HashMap<String, String[]>();
285 private List<Portlet> _configurationPortlets = new ArrayList<Portlet>();
286 private List<Portlet> _dataPortlets = new ArrayList<Portlet>();
287 private Set<String> _dataRootPortletIds = new HashSet<String>();
288 private Date _exportDate;
289 private Set<String> _manifestSummaryKeys = new HashSet<String>();
290 private Map<String, LongWrapper> _modelAdditionCounters =
291 new HashMap<String, LongWrapper>();
292 private Map<String, LongWrapper> _modelDeletionCounters =
293 new HashMap<String, LongWrapper>();
294
295 }