001
014
015 package com.liferay.portlet.journal.model;
016
017 import com.liferay.portal.kernel.exception.SystemException;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.kernel.util.StringBundler;
021 import com.liferay.portal.kernel.util.Validator;
022 import com.liferay.portal.kernel.xml.Document;
023 import com.liferay.portal.kernel.xml.Element;
024 import com.liferay.portal.kernel.xml.Node;
025 import com.liferay.portal.kernel.xml.SAXReaderUtil;
026 import com.liferay.portal.service.ServiceContext;
027 import com.liferay.portal.util.PortalUtil;
028 import com.liferay.portlet.dynamicdatamapping.model.DDMStructure;
029 import com.liferay.portlet.dynamicdatamapping.service.DDMStructureLocalServiceUtil;
030 import com.liferay.portlet.expando.model.ExpandoBridge;
031 import com.liferay.portlet.journal.util.JournalConverterUtil;
032
033 import java.io.Serializable;
034
035 import java.util.Date;
036 import java.util.HashMap;
037 import java.util.List;
038 import java.util.Locale;
039 import java.util.Map;
040
041
044 public class JournalStructureAdapter implements JournalStructure {
045
046 public JournalStructureAdapter(DDMStructure ddmStructure)
047 throws SystemException {
048
049 _ddmStructure = ddmStructure;
050
051 _setXsd(ddmStructure.getXsd());
052 }
053
054 @Override
055 public Object clone() {
056 JournalStructureAdapter journalStructureAdapter =
057 new JournalStructureAdapter();
058
059 journalStructureAdapter.setUuid(getUuid());
060 journalStructureAdapter.setId(getId());
061 journalStructureAdapter.setGroupId(getGroupId());
062 journalStructureAdapter.setCompanyId(getCompanyId());
063 journalStructureAdapter.setUserId(getUserId());
064 journalStructureAdapter.setUserName(getUserName());
065 journalStructureAdapter.setCreateDate(getCreateDate());
066 journalStructureAdapter.setModifiedDate(getModifiedDate());
067 journalStructureAdapter.setStructureId(getStructureId());
068 journalStructureAdapter.setParentStructureId(getParentStructureId());
069 journalStructureAdapter.setName(getName());
070 journalStructureAdapter.setDescription(getDescription());
071 journalStructureAdapter.setXsd(getXsd());
072
073 return journalStructureAdapter;
074 }
075
076 @Override
077 public int compareTo(JournalStructure journalStructure) {
078 String structureId = getStructureId();
079
080 int value = structureId.compareTo(journalStructure.getStructureId());
081
082 if (value != 0) {
083 return value;
084 }
085
086 return 0;
087 }
088
089 @Override
090 public boolean equals(Object obj) {
091 if (this == obj) {
092 return true;
093 }
094
095 if (!(obj instanceof JournalStructure)) {
096 return false;
097 }
098
099 JournalStructure journalStructure = (JournalStructure)obj;
100
101 if (Validator.equals(getId(), journalStructure.getId())) {
102 return true;
103 }
104
105 return false;
106 }
107
108 @Override
109 public long getCompanyId() {
110 return _ddmStructure.getCompanyId();
111 }
112
113 @Override
114 public Date getCreateDate() {
115 return _ddmStructure.getCreateDate();
116 }
117
118 @Override
119 public String getDescription() {
120 return _ddmStructure.getDescription();
121 }
122
123 @Override
124 public String getDescription(Locale locale) {
125 return _ddmStructure.getDescription(locale);
126 }
127
128 @Override
129 public String getDescription(Locale locale, boolean useDefault) {
130 return _ddmStructure.getDescription(locale, useDefault);
131 }
132
133 @Override
134 public String getDescription(String languageId) {
135 return _ddmStructure.getDescription(languageId);
136 }
137
138 @Override
139 public String getDescription(String languageId, boolean useDefault) {
140 return _ddmStructure.getDescription(languageId, useDefault);
141 }
142
143 @Override
144 public Map<Locale, String> getDescriptionMap() {
145 return _ddmStructure.getDescriptionMap();
146 }
147
148 @Override
149 public ExpandoBridge getExpandoBridge() {
150 return _ddmStructure.getExpandoBridge();
151 }
152
153 @Override
154 public long getGroupId() {
155 return _ddmStructure.getGroupId();
156 }
157
158 @Override
159 public long getId() {
160 return _ddmStructure.getStructureId();
161 }
162
163 @Override
164 public String getMergedXsd() {
165 String parentStructureId = getParentStructureId();
166
167 String xsd = getXsd();
168
169 if (Validator.isNull(parentStructureId)) {
170 return xsd;
171 }
172
173 try {
174 @SuppressWarnings("deprecation")
175 JournalStructure parentStructure =
176 com.liferay.portlet.journal.service.
177 JournalStructureLocalServiceUtil.getStructure(
178 getGroupId(), parentStructureId, true);
179
180 Document document = SAXReaderUtil.read(getXsd());
181
182 Element rootElement = document.getRootElement();
183
184 Document parentDocument = SAXReaderUtil.read(
185 parentStructure.getMergedXsd());
186
187 Element parentRootElement = parentDocument.getRootElement();
188
189 addParentStructureId(parentRootElement, parentStructureId);
190
191 List<Node> nodes = rootElement.content();
192
193 nodes.addAll(0, parentRootElement.content());
194
195 xsd = rootElement.asXML();
196 }
197 catch (Exception e) {
198 }
199
200 return xsd;
201 }
202
203 @Override
204 public Map<String, Object> getModelAttributes() {
205 Map<String, Object> attributes = new HashMap<String, Object>();
206
207 attributes.put("uuid", getUuid());
208 attributes.put("id", getId());
209 attributes.put("groupId", getGroupId());
210 attributes.put("companyId", getCompanyId());
211 attributes.put("userId", getUserId());
212 attributes.put("userName", getUserName());
213 attributes.put("createDate", getCreateDate());
214 attributes.put("modifiedDate", getModifiedDate());
215 attributes.put("structureId", getStructureId());
216 attributes.put("parentStructureId", getParentStructureId());
217 attributes.put("name", getName());
218 attributes.put("description", getDescription());
219 attributes.put("xsd", getXsd());
220
221 return attributes;
222 }
223
224 @Override
225 public Class<?> getModelClass() {
226 return JournalStructure.class;
227 }
228
229 @Override
230 public String getModelClassName() {
231 return JournalStructure.class.getName();
232 }
233
234 @Override
235 public Date getModifiedDate() {
236 return _ddmStructure.getModifiedDate();
237 }
238
239 @Override
240 public String getName() {
241 return _ddmStructure.getName();
242 }
243
244 @Override
245 public String getName(Locale locale) {
246 return _ddmStructure.getName(locale);
247 }
248
249 @Override
250 public String getName(Locale locale, boolean useDefault) {
251 return _ddmStructure.getName(locale, useDefault);
252 }
253
254 @Override
255 public String getName(String languageId) {
256 return _ddmStructure.getName(languageId);
257 }
258
259 @Override
260 public String getName(String languageId, boolean useDefault) {
261 return _ddmStructure.getName(languageId, useDefault);
262 }
263
264 @Override
265 public Map<Locale, String> getNameMap() {
266 return _ddmStructure.getNameMap();
267 }
268
269 @Override
270 public String getParentStructureId() {
271 if (_ddmStructure.getParentStructureId() == 0) {
272 return null;
273 }
274
275 try {
276 DDMStructure parentDDMStructure =
277 DDMStructureLocalServiceUtil.getStructure(
278 _ddmStructure.getParentStructureId());
279
280 return parentDDMStructure.getStructureKey();
281 }
282 catch (Exception e) {
283 _log.error(e, e);
284 }
285
286 return null;
287 }
288
289 @Override
290 public long getPrimaryKey() {
291 return _ddmStructure.getPrimaryKey();
292 }
293
294 @Override
295 public Serializable getPrimaryKeyObj() {
296 return _ddmStructure.getPrimaryKeyObj();
297 }
298
299 @Override
300 public String getStructureId() {
301 return _ddmStructure.getStructureKey();
302 }
303
304 @Override
305 public long getUserId() {
306 return _ddmStructure.getUserId();
307 }
308
309 @Override
310 public String getUserName() {
311 return _ddmStructure.getUserName();
312 }
313
314 @Override
315 public String getUserUuid() throws SystemException {
316 return _ddmStructure.getUserUuid();
317 }
318
319 @Override
320 public String getUuid() {
321 return _ddmStructure.getUuid();
322 }
323
324 @Override
325 public String getXsd() {
326 return _xsd;
327 }
328
329 @Override
330 public int hashCode() {
331 return (int)getPrimaryKey();
332 }
333
334 @Override
335 public boolean isNew() {
336 return _ddmStructure.isNew();
337 }
338
339 @Override
340 public void setCompanyId(long companyId) {
341 _ddmStructure.setCompanyId(companyId);
342 }
343
344 @Override
345 public void setCreateDate(Date createDate) {
346 _ddmStructure.setCreateDate(createDate);
347 }
348
349 @Override
350 public void setDescription(String description) {
351 _ddmStructure.setDescription(description);
352 }
353
354 @Override
355 public void setDescription(String description, Locale locale) {
356 _ddmStructure.setDescription(description, locale);
357 }
358
359 @Override
360 public void setDescription(
361 String description, Locale locale, Locale defaultLocale) {
362
363 _ddmStructure.setDescription(description, locale, defaultLocale);
364 }
365
366 @Override
367 public void setDescriptionMap(Map<Locale, String> descriptionMap) {
368 _ddmStructure.setDescriptionMap(descriptionMap);
369 }
370
371 @Override
372 public void setDescriptionMap(
373 Map<Locale, String> descriptionMap, Locale defaultLocale) {
374
375 _ddmStructure.setDescriptionMap(descriptionMap, defaultLocale);
376 }
377
378 @Override
379 public void setExpandoBridgeAttributes(ExpandoBridge expandoBridge) {
380 _ddmStructure.setExpandoBridgeAttributes(expandoBridge);
381 }
382
383 @Override
384 public void setExpandoBridgeAttributes(JournalStructure journalStructure) {
385 ExpandoBridge expandoBridge = getExpandoBridge();
386
387 ExpandoBridge journalStructureExpandoBridge =
388 journalStructure.getExpandoBridge();
389
390 expandoBridge.setAttributes(
391 journalStructureExpandoBridge.getAttributes());
392 }
393
394 @Override
395 public void setExpandoBridgeAttributes(ServiceContext serviceContext) {
396 _ddmStructure.setExpandoBridgeAttributes(serviceContext);
397 }
398
399 @Override
400 public void setGroupId(long groupId) {
401 _ddmStructure.setGroupId(groupId);
402 }
403
404 @Override
405 public void setId(long id) {
406 _ddmStructure.setStructureId(id);
407 }
408
409 @Override
410 public void setModelAttributes(Map<String, Object> attributes) {
411 String uuid = (String)attributes.get("uuid");
412
413 if (uuid != null) {
414 setUuid(uuid);
415 }
416
417 Long id = (Long)attributes.get("id");
418
419 if (id != null) {
420 setId(id);
421 }
422
423 Long groupId = (Long)attributes.get("groupId");
424
425 if (groupId != null) {
426 setGroupId(groupId);
427 }
428
429 Long companyId = (Long)attributes.get("companyId");
430
431 if (companyId != null) {
432 setCompanyId(companyId);
433 }
434
435 Long userId = (Long)attributes.get("userId");
436
437 if (userId != null) {
438 setUserId(userId);
439 }
440
441 String userName = (String)attributes.get("userName");
442
443 if (userName != null) {
444 setUserName(userName);
445 }
446
447 Date createDate = (Date)attributes.get("createDate");
448
449 if (createDate != null) {
450 setCreateDate(createDate);
451 }
452
453 Date modifiedDate = (Date)attributes.get("modifiedDate");
454
455 if (modifiedDate != null) {
456 setModifiedDate(modifiedDate);
457 }
458
459 String structureId = (String)attributes.get("structureId");
460
461 if (structureId != null) {
462 setStructureId(structureId);
463 }
464
465 String parentStructureId = (String)attributes.get("parentStructureId");
466
467 if (parentStructureId != null) {
468 setParentStructureId(parentStructureId);
469 }
470
471 String name = (String)attributes.get("name");
472
473 if (name != null) {
474 setName(name);
475 }
476
477 String description = (String)attributes.get("description");
478
479 if (description != null) {
480 setDescription(description);
481 }
482
483 String xsd = (String)attributes.get("xsd");
484
485 if (xsd != null) {
486 setXsd(xsd);
487 }
488 }
489
490 @Override
491 public void setModifiedDate(Date modifiedDate) {
492 _ddmStructure.setModifiedDate(modifiedDate);
493 }
494
495 @Override
496 public void setName(String name) {
497 _ddmStructure.setName(name);
498 }
499
500 @Override
501 public void setName(String name, Locale locale) {
502 _ddmStructure.setName(name, locale);
503 }
504
505 @Override
506 public void setName(String name, Locale locale, Locale defaultLocale) {
507 _ddmStructure.setName(name, locale, defaultLocale);
508 }
509
510 @Override
511 public void setNameMap(Map<Locale, String> nameMap) {
512 _ddmStructure.setNameMap(nameMap);
513 }
514
515 @Override
516 public void setNameMap(Map<Locale, String> nameMap, Locale defaultLocale) {
517 _ddmStructure.setNameMap(nameMap, defaultLocale);
518 }
519
520 @Override
521 public void setNew(boolean n) {
522 _ddmStructure.setNew(n);
523 }
524
525 @Override
526 public void setParentStructureId(String parentStructureId) {
527 if (parentStructureId == null) {
528 _ddmStructure.setParentStructureId(0);
529 }
530
531 try {
532 DDMStructure parentDDMStructure =
533 DDMStructureLocalServiceUtil.getStructure(
534 getGroupId(),
535 PortalUtil.getClassNameId(JournalArticle.class.getName()),
536 parentStructureId);
537
538 _ddmStructure.setParentStructureId(
539 parentDDMStructure.getStructureId());
540 }
541 catch (Exception e) {
542 _log.error(e, e);
543 }
544 }
545
546 @Override
547 public void setPrimaryKey(long primaryKey) {
548 _ddmStructure.setPrimaryKey(primaryKey);
549 }
550
551 @Override
552 public void setPrimaryKeyObj(Serializable primaryKeyObj) {
553 _ddmStructure.setPrimaryKeyObj(primaryKeyObj);
554 }
555
556 @Override
557 public void setStructureId(String structureId) {
558 _ddmStructure.setStructureKey(structureId);
559 }
560
561 @Override
562 public void setUserId(long userId) {
563 _ddmStructure.setUserId(userId);
564 }
565
566 @Override
567 public void setUserName(String userName) {
568 _ddmStructure.setUserName(userName);
569 }
570
571 @Override
572 public void setUserUuid(String userUuid) {
573 _ddmStructure.setUserUuid(userUuid);
574 }
575
576 @Override
577 public void setUuid(String uuid) {
578 _ddmStructure.setUuid(uuid);
579 }
580
581 @Override
582 public void setXsd(String xsd) {
583 _xsd = xsd;
584 }
585
586 @Override
587 public String toString() {
588 StringBundler sb = new StringBundler(27);
589
590 sb.append("{uuid=");
591 sb.append(getUuid());
592 sb.append(", id=");
593 sb.append(getId());
594 sb.append(", groupId=");
595 sb.append(getGroupId());
596 sb.append(", companyId=");
597 sb.append(getCompanyId());
598 sb.append(", userId=");
599 sb.append(getUserId());
600 sb.append(", userName=");
601 sb.append(getUserName());
602 sb.append(", createDate=");
603 sb.append(getCreateDate());
604 sb.append(", modifiedDate=");
605 sb.append(getModifiedDate());
606 sb.append(", structureId=");
607 sb.append(getStructureId());
608 sb.append(", parentStructureId=");
609 sb.append(getParentStructureId());
610 sb.append(", name=");
611 sb.append(getName());
612 sb.append(", description=");
613 sb.append(getDescription());
614 sb.append(", xsd=");
615 sb.append(getXsd());
616 sb.append("}");
617
618 return sb.toString();
619 }
620
621 protected void addParentStructureId(
622 Element parentElement, String parentStructureId) {
623
624 List<Element> dynamicElementElements = parentElement.elements(
625 "dynamic-element");
626
627 for (Element dynamicElementElement : dynamicElementElements) {
628 dynamicElementElement.addAttribute(
629 "parent-structure-id", parentStructureId);
630
631 addParentStructureId(dynamicElementElement, parentStructureId);
632 }
633 }
634
635 private JournalStructureAdapter() {
636 }
637
638 private void _setXsd(String ddmXsd) throws SystemException {
639 if (Validator.isNull(ddmXsd)) {
640 return;
641 }
642
643 try {
644 _xsd = JournalConverterUtil.getJournalXSD(ddmXsd);
645 }
646 catch (Exception e) {
647 throw new SystemException(e);
648 }
649 }
650
651 private static Log _log = LogFactoryUtil.getLog(
652 JournalStructureAdapter.class);
653
654 private DDMStructure _ddmStructure;
655 private String _xsd;
656
657 }