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