001
014
015 package com.liferay.portal.kernel.lar;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.util.ArrayUtil;
020 import com.liferay.portal.kernel.util.GetterUtil;
021 import com.liferay.portal.kernel.util.StringPool;
022 import com.liferay.portal.kernel.util.Time;
023 import com.liferay.portal.kernel.util.Validator;
024 import com.liferay.portal.kernel.xml.Document;
025 import com.liferay.portal.kernel.xml.DocumentException;
026 import com.liferay.portal.kernel.xml.Element;
027 import com.liferay.portal.kernel.xml.SAXReaderUtil;
028 import com.liferay.portal.model.Portlet;
029 import com.liferay.portal.service.PortletLocalServiceUtil;
030 import com.liferay.portal.service.PortletPreferencesLocalServiceUtil;
031 import com.liferay.portal.util.PortalUtil;
032 import com.liferay.portal.util.PortletKeys;
033 import com.liferay.portlet.dynamicdatamapping.model.DDMTemplate;
034 import com.liferay.portlet.dynamicdatamapping.service.DDMTemplateLocalServiceUtil;
035 import com.liferay.portlet.portletdisplaytemplate.util.PortletDisplayTemplate;
036 import com.liferay.portlet.portletdisplaytemplate.util.PortletDisplayTemplateUtil;
037
038 import java.io.IOException;
039
040 import java.util.ArrayList;
041 import java.util.List;
042
043 import javax.portlet.PortletPreferences;
044
045
048 public abstract class BasePortletDataHandler implements PortletDataHandler {
049
050 @Override
051 public PortletPreferences deleteData(
052 PortletDataContext portletDataContext, String portletId,
053 PortletPreferences portletPreferences)
054 throws PortletDataException {
055
056 long startTime = 0;
057
058 if (_log.isInfoEnabled()) {
059 _log.info("Deleting portlet " + portletId);
060
061 startTime = System.currentTimeMillis();
062 }
063
064 try {
065 return doDeleteData(
066 portletDataContext, portletId, portletPreferences);
067 }
068 catch (PortletDataException pde) {
069 throw pde;
070 }
071 catch (Exception e) {
072 throw new PortletDataException(e);
073 }
074 finally {
075 if (_log.isInfoEnabled()) {
076 long duration = System.currentTimeMillis() - startTime;
077
078 _log.info("Deleted portlet in " + Time.getDuration(duration));
079 }
080 }
081 }
082
083 @Override
084 public String exportData(
085 PortletDataContext portletDataContext, String portletId,
086 PortletPreferences portletPreferences)
087 throws PortletDataException {
088
089 long startTime = 0;
090
091 if (_log.isInfoEnabled()) {
092 _log.info("Exporting portlet " + portletId);
093
094 startTime = System.currentTimeMillis();
095 }
096
097 try {
098 portletDataContext.addDeletionSystemEventStagedModelTypes(
099 getDeletionSystemEventStagedModelTypes());
100
101 for (PortletDataHandlerControl portletDataHandlerControl :
102 getExportControls()) {
103
104 addUncheckedModelAdditionCount(
105 portletDataContext, portletDataHandlerControl);
106 }
107
108 return doExportData(
109 portletDataContext, portletId, portletPreferences);
110 }
111 catch (PortletDataException pde) {
112 throw pde;
113 }
114 catch (Exception e) {
115 throw new PortletDataException(e);
116 }
117 finally {
118 if (_log.isInfoEnabled()) {
119 long duration = System.currentTimeMillis() - startTime;
120
121 _log.info("Exported portlet in " + Time.getDuration(duration));
122 }
123 }
124 }
125
126 @Override
127 public DataLevel getDataLevel() {
128 return _dataLevel;
129 }
130
131 @Override
132 public String[] getDataPortletPreferences() {
133 return _dataPortletPreferences;
134 }
135
136 @Override
137 public StagedModelType[] getDeletionSystemEventStagedModelTypes() {
138 return _deletionSystemEventStagedModelTypes;
139 }
140
141 @Override
142 public PortletDataHandlerControl[] getExportConfigurationControls(
143 long companyId, long groupId, Portlet portlet,
144 boolean privateLayout)
145 throws Exception {
146
147 return getExportConfigurationControls(
148 companyId, groupId, portlet, -1, privateLayout);
149 }
150
151 @Override
152 public PortletDataHandlerControl[] getExportConfigurationControls(
153 long companyId, long groupId, Portlet portlet, long plid,
154 boolean privateLayout)
155 throws Exception {
156
157 List<PortletDataHandlerBoolean> configurationControls =
158 new ArrayList<PortletDataHandlerBoolean>();
159
160
161
162 if ((PortletPreferencesLocalServiceUtil.getPortletPreferencesCount(
163 PortletKeys.PREFS_OWNER_ID_DEFAULT,
164 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, plid, portlet, false)
165 > 0) ||
166 (PortletPreferencesLocalServiceUtil.getPortletPreferencesCount(
167 groupId, PortletKeys.PREFS_OWNER_TYPE_GROUP,
168 portlet.getRootPortletId(), false) > 0) ||
169 (PortletPreferencesLocalServiceUtil.getPortletPreferencesCount(
170 companyId, PortletKeys.PREFS_OWNER_TYPE_COMPANY,
171 portlet.getRootPortletId(), false) > 0)) {
172
173 PortletDataHandlerControl[] portletDataHandlerControls = null;
174
175 if (isDisplayPortlet()) {
176 portletDataHandlerControls = getExportControls();
177 }
178
179 configurationControls.add(
180 new PortletDataHandlerBoolean(
181 null, PortletDataHandlerKeys.PORTLET_SETUP, "setup",
182 true, false, portletDataHandlerControls, null, null));
183 }
184
185
186
187 if (PortletPreferencesLocalServiceUtil.getPortletPreferencesCount(
188 -1, PortletKeys.PREFS_OWNER_TYPE_ARCHIVED,
189 portlet.getRootPortletId(), false) > 0) {
190
191 configurationControls.add(
192 new PortletDataHandlerBoolean(
193 null, PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS,
194 "archived-setups", true, false, null, null, null)
195 );
196 }
197
198
199
200 if ((PortletPreferencesLocalServiceUtil.getPortletPreferencesCount(
201 -1, PortletKeys.PREFS_OWNER_TYPE_USER, plid, portlet, false)
202 > 0) ||
203 (PortletPreferencesLocalServiceUtil.getPortletPreferencesCount(
204 groupId, PortletKeys.PREFS_OWNER_TYPE_USER,
205 PortletKeys.PREFS_PLID_SHARED, portlet, false) > 0)) {
206
207 configurationControls.add(
208 new PortletDataHandlerBoolean(
209 null, PortletDataHandlerKeys.PORTLET_USER_PREFERENCES,
210 "user-preferences", true, false, null, null, null));
211 }
212
213 return configurationControls.toArray(
214 new PortletDataHandlerBoolean[configurationControls.size()]);
215 }
216
217 @Override
218 public PortletDataHandlerControl[] getExportControls() {
219 return _exportControls;
220 }
221
222 @Override
223 public PortletDataHandlerControl[] getExportMetadataControls() {
224 return _exportMetadataControls;
225 }
226
227 @Override
228 public long getExportModelCount(ManifestSummary manifestSummary) {
229 return getExportModelCount(manifestSummary, getExportControls());
230 }
231
232 @Override
233 public PortletDataHandlerControl[] getImportConfigurationControls(
234 Portlet portlet, ManifestSummary manifestSummary) {
235
236 String[] configurationPortletOptions =
237 manifestSummary.getConfigurationPortletOptions(
238 portlet.getRootPortletId());
239
240 return getImportConfigurationControls(configurationPortletOptions);
241 }
242
243 @Override
244 public PortletDataHandlerControl[] getImportConfigurationControls(
245 String[] configurationPortletOptions) {
246
247 List<PortletDataHandlerBoolean> configurationControls =
248 new ArrayList<PortletDataHandlerBoolean>();
249
250
251
252 if (ArrayUtil.contains(configurationPortletOptions, "setup")) {
253 PortletDataHandlerControl[] portletDataHandlerControls = null;
254
255 if (isDisplayPortlet()) {
256 portletDataHandlerControls = getExportControls();
257 }
258
259 configurationControls.add(
260 new PortletDataHandlerBoolean(
261 null, PortletDataHandlerKeys.PORTLET_SETUP, "setup", true,
262 false, portletDataHandlerControls, null, null));
263 }
264
265
266
267 if (ArrayUtil.contains(
268 configurationPortletOptions, "archived-setups")) {
269
270 configurationControls.add(
271 new PortletDataHandlerBoolean(
272 null, PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS,
273 "archived-setups", true, false, null, null, null));
274 }
275
276
277
278 if (ArrayUtil.contains(
279 configurationPortletOptions, "user-preferences")) {
280
281 configurationControls.add(
282 new PortletDataHandlerBoolean(
283 null, PortletDataHandlerKeys.PORTLET_USER_PREFERENCES,
284 "user-preferences", true, false, null, null, null));
285 }
286
287 return configurationControls.toArray(
288 new PortletDataHandlerBoolean[configurationControls.size()]);
289 }
290
291 @Override
292 public PortletDataHandlerControl[] getImportControls() {
293 return _importControls;
294 }
295
296 @Override
297 public PortletDataHandlerControl[] getImportMetadataControls() {
298 return _importMetadataControls;
299 }
300
301 @Override
302 public String getPortletId() {
303 return _portletId;
304 }
305
306 @Override
307 public PortletPreferences importData(
308 PortletDataContext portletDataContext, String portletId,
309 PortletPreferences portletPreferences, String data)
310 throws PortletDataException {
311
312 long startTime = 0;
313
314 if (_log.isInfoEnabled()) {
315 _log.info("Importing portlet " + portletId);
316
317 startTime = System.currentTimeMillis();
318 }
319
320 long sourceGroupId = portletDataContext.getSourceGroupId();
321
322 try {
323 if (Validator.isXml(data)) {
324 addImportDataRootElement(portletDataContext, data);
325 }
326
327 return doImportData(
328 portletDataContext, portletId, portletPreferences, data);
329 }
330 catch (PortletDataException pde) {
331 throw pde;
332 }
333 catch (Exception e) {
334 throw new PortletDataException(e);
335 }
336 finally {
337 portletDataContext.setSourceGroupId(sourceGroupId);
338
339 if (_log.isInfoEnabled()) {
340 long duration = System.currentTimeMillis() - startTime;
341
342 _log.info("Imported portlet in " + Time.getDuration(duration));
343 }
344 }
345 }
346
347 @Override
348 public boolean isDataLocalized() {
349 return _dataLocalized;
350 }
351
352 @Override
353 public boolean isDataPortalLevel() {
354 return _dataLevel.equals(DataLevel.PORTAL);
355 }
356
357 @Override
358 public boolean isDataPortletInstanceLevel() {
359 return _dataLevel.equals(DataLevel.PORTLET_INSTANCE);
360 }
361
362 @Override
363 public boolean isDataSiteLevel() {
364 return _dataLevel.equals(DataLevel.SITE);
365 }
366
367 @Override
368 public boolean isDisplayPortlet() {
369 if (isDataPortletInstanceLevel() &&
370 !ArrayUtil.isEmpty(getDataPortletPreferences())) {
371
372 return true;
373 }
374
375 return false;
376 }
377
378 @Override
379 public boolean isPublishToLiveByDefault() {
380 return _publishToLiveByDefault;
381 }
382
383 @Override
384 public boolean isSupportsDataStrategyCopyAsNew() {
385 return _supportsDataStrategyCopyAsNew;
386 }
387
388 @Override
389 public void prepareManifestSummary(PortletDataContext portletDataContext)
390 throws PortletDataException {
391
392 prepareManifestSummary(portletDataContext, null);
393 }
394
395 @Override
396 public void prepareManifestSummary(
397 PortletDataContext portletDataContext,
398 PortletPreferences portletPreferences)
399 throws PortletDataException {
400
401 try {
402 doPrepareManifestSummary(portletDataContext, portletPreferences);
403 }
404 catch (PortletDataException pde) {
405 throw pde;
406 }
407 catch (Exception e) {
408 throw new PortletDataException(e);
409 }
410 }
411
412 @Override
413 public PortletPreferences processExportPortletPreferences(
414 PortletDataContext portletDataContext, String portletId,
415 PortletPreferences portletPreferences)
416 throws PortletDataException {
417
418 String displayStyle = getDisplayTemplate(
419 portletDataContext, portletId, portletPreferences);
420
421 if (Validator.isNotNull(displayStyle) &&
422 displayStyle.startsWith(
423 PortletDisplayTemplate.DISPLAY_STYLE_PREFIX)) {
424
425 long displayStyleGroupId = getDisplayTemplateGroupId(
426 portletDataContext, portletId, portletPreferences);
427
428 long previousScopeGroupId = portletDataContext.getScopeGroupId();
429
430 if (displayStyleGroupId != portletDataContext.getScopeGroupId()) {
431 portletDataContext.setScopeGroupId(displayStyleGroupId);
432 }
433
434 DDMTemplate ddmTemplate =
435 PortletDisplayTemplateUtil.fetchDDMTemplate(
436 portletDataContext.getGroupId(), displayStyle);
437
438 if (ddmTemplate != null) {
439 StagedModelDataHandlerUtil.exportReferenceStagedModel(
440 portletDataContext, portletId, ddmTemplate);
441 }
442
443 portletDataContext.setScopeGroupId(previousScopeGroupId);
444 }
445
446 try {
447 return doProcessExportPortletPreferences(
448 portletDataContext, portletId, portletPreferences);
449 }
450 catch (PortletDataException pde) {
451 throw pde;
452 }
453 catch (Exception e) {
454 throw new PortletDataException(e);
455 }
456 }
457
458 @Override
459 public PortletPreferences processImportPortletPreferences(
460 PortletDataContext portletDataContext, String portletId,
461 PortletPreferences portletPreferences)
462 throws PortletDataException {
463
464 try {
465 String displayStyle = getDisplayTemplate(
466 portletDataContext, portletId, portletPreferences);
467
468 if (Validator.isNotNull(displayStyle) &&
469 displayStyle.startsWith(
470 PortletDisplayTemplate.DISPLAY_STYLE_PREFIX)) {
471
472 DDMTemplate ddmTemplate = null;
473
474 long displayStyleGroupId = getDisplayTemplateGroupId(
475 portletDataContext, portletId, portletPreferences);
476
477 if (displayStyleGroupId ==
478 portletDataContext.getSourceCompanyGroupId()) {
479
480 Element importDataRootElement =
481 portletDataContext.getImportDataRootElement();
482
483 Element referencesElement = importDataRootElement.element(
484 "references");
485
486 List<Element> referenceElements =
487 referencesElement.elements();
488
489 String ddmTemplateUuid =
490 PortletDisplayTemplateUtil.getDDMTemplateUuid(
491 displayStyle);
492
493 boolean preloaded = false;
494 long referenceClassNameId = 0;
495 String templateKey = null;
496
497 for (Element referenceElement : referenceElements) {
498 String className = referenceElement.attributeValue(
499 "class-name");
500 String uuid = referenceElement.attributeValue("uuid");
501
502 if (!className.equals(DDMTemplate.class.getName()) ||
503 !uuid.equals(ddmTemplateUuid)) {
504
505 continue;
506 }
507
508 preloaded = GetterUtil.getBoolean(
509 referenceElement.attributeValue("preloaded"));
510 referenceClassNameId = PortalUtil.getClassNameId(
511 referenceElement.attributeValue(
512 "referenced-class-name"));
513 templateKey = referenceElement.attributeValue(
514 "template-key");
515
516 break;
517 }
518
519 if (!preloaded) {
520 ddmTemplate =
521 PortletDisplayTemplateUtil.fetchDDMTemplate(
522 portletDataContext.getCompanyGroupId(),
523 displayStyle);
524 }
525 else {
526 ddmTemplate = DDMTemplateLocalServiceUtil.fetchTemplate(
527 portletDataContext.getCompanyGroupId(),
528 referenceClassNameId, templateKey);
529 }
530 }
531 else if (displayStyleGroupId ==
532 portletDataContext.getSourceGroupId()) {
533
534 ddmTemplate = PortletDisplayTemplateUtil.fetchDDMTemplate(
535 portletDataContext.getScopeGroupId(), displayStyle);
536 }
537 else {
538 ddmTemplate = PortletDisplayTemplateUtil.fetchDDMTemplate(
539 displayStyleGroupId, displayStyle);
540 }
541
542 long importedDisplayStyleGroupId =
543 portletDataContext.getScopeGroupId();
544
545 if (ddmTemplate == null) {
546 String ddmTemplateUuid =
547 PortletDisplayTemplateUtil.getDDMTemplateUuid(
548 displayStyle);
549
550 Element ddmTemplateElement =
551 portletDataContext.getImportDataElement(
552 DDMTemplate.class.getSimpleName(), "uuid",
553 ddmTemplateUuid);
554
555 if (ddmTemplateElement != null) {
556 String ddmTemplatePath =
557 ddmTemplateElement.attributeValue("path");
558
559 ddmTemplate =
560 (DDMTemplate)portletDataContext.getZipEntryAsObject(
561 ddmTemplatePath);
562
563 if (ddmTemplate != null) {
564 StagedModelDataHandlerUtil.importStagedModel(
565 portletDataContext, ddmTemplate);
566 }
567 }
568 }
569 else {
570 importedDisplayStyleGroupId = ddmTemplate.getGroupId();
571 }
572
573 portletPreferences.setValue(
574 "displayStyleGroupId",
575 String.valueOf(importedDisplayStyleGroupId));
576 }
577 else {
578 portletPreferences.setValue(
579 "displayStyleGroupId", StringPool.BLANK);
580 }
581
582 return doProcessImportPortletPreferences(
583 portletDataContext, portletId, portletPreferences);
584 }
585 catch (PortletDataException pde) {
586 throw pde;
587 }
588 catch (Exception e) {
589 throw new PortletDataException(e);
590 }
591 }
592
593 @Override
594 public void setPortletId(String portletId) {
595 _portletId = portletId;
596 }
597
598 protected Element addExportDataRootElement(
599 PortletDataContext portletDataContext) {
600
601 Document document = SAXReaderUtil.createDocument();
602
603 Class<?> clazz = getClass();
604
605 Element rootElement = document.addElement(clazz.getSimpleName());
606
607 portletDataContext.setExportDataRootElement(rootElement);
608
609 return rootElement;
610 }
611
612 protected Element addImportDataRootElement(
613 PortletDataContext portletDataContext, String data)
614 throws DocumentException {
615
616 Document document = SAXReaderUtil.read(data);
617
618 Element rootElement = document.getRootElement();
619
620 portletDataContext.setImportDataRootElement(rootElement);
621
622 long groupId = GetterUtil.getLong(
623 rootElement.attributeValue("group-id"));
624
625 if (groupId != 0) {
626 portletDataContext.setSourceGroupId(groupId);
627 }
628
629 return rootElement;
630 }
631
632 protected void addUncheckedModelAdditionCount(
633 PortletDataContext portletDataContext,
634 PortletDataHandlerControl portletDataHandlerControl) {
635
636 if (!(portletDataHandlerControl instanceof PortletDataHandlerBoolean)) {
637 return;
638 }
639
640 PortletDataHandlerBoolean portletDataHandlerBoolean =
641 (PortletDataHandlerBoolean)portletDataHandlerControl;
642
643 PortletDataHandlerControl[] childPortletDataHandlerControls =
644 portletDataHandlerBoolean.getChildren();
645
646 if (childPortletDataHandlerControls != null) {
647 for (PortletDataHandlerControl childPortletDataHandlerControl :
648 childPortletDataHandlerControls) {
649
650 addUncheckedModelAdditionCount(
651 portletDataContext, childPortletDataHandlerControl);
652 }
653 }
654
655 if (Validator.isNull(portletDataHandlerControl.getClassName())) {
656 return;
657 }
658
659 boolean checkedControl = GetterUtil.getBoolean(
660 portletDataContext.getBooleanParameter(
661 portletDataHandlerControl.getNamespace(),
662 portletDataHandlerControl.getControlName(), false));
663
664 if (!checkedControl) {
665 ManifestSummary manifestSummary =
666 portletDataContext.getManifestSummary();
667
668 String manifestSummaryKey = ManifestSummary.getManifestSummaryKey(
669 portletDataHandlerControl.getClassName(),
670 portletDataHandlerBoolean.getReferrerClassName());
671
672 manifestSummary.addModelAdditionCount(manifestSummaryKey, 0);
673 }
674 }
675
676 protected PortletPreferences doDeleteData(
677 PortletDataContext portletDataContext, String portletId,
678 PortletPreferences portletPreferences)
679 throws Exception {
680
681 return portletPreferences;
682 }
683
684 protected String doExportData(
685 PortletDataContext portletDataContext, String portletId,
686 PortletPreferences portletPreferences)
687 throws Exception {
688
689 return null;
690 }
691
692 protected PortletPreferences doImportData(
693 PortletDataContext portletDataContext, String portletId,
694 PortletPreferences portletPreferences, String data)
695 throws Exception {
696
697 return null;
698 }
699
700 protected void doPrepareManifestSummary(
701 PortletDataContext portletDataContext,
702 PortletPreferences portletPreferences)
703 throws Exception {
704 }
705
706 protected PortletPreferences doProcessExportPortletPreferences(
707 PortletDataContext portletDataContext, String portletId,
708 PortletPreferences portletPreferences)
709 throws Exception {
710
711 return portletPreferences;
712 }
713
714 protected PortletPreferences doProcessImportPortletPreferences(
715 PortletDataContext portletDataContext, String portletId,
716 PortletPreferences portletPreferences)
717 throws Exception {
718
719 return portletPreferences;
720 }
721
722 protected String getDisplayTemplate(
723 PortletDataContext portletDataContext, String portletId,
724 PortletPreferences portletPreferences) {
725
726 try {
727 Portlet portlet = PortletLocalServiceUtil.getPortletById(
728 portletDataContext.getCompanyId(), portletId);
729
730 if (Validator.isNotNull(portlet.getTemplateHandlerClass())) {
731 return portletPreferences.getValue("displayStyle", null);
732 }
733 }
734 catch (Exception e) {
735 }
736
737 return null;
738 }
739
740 protected long getDisplayTemplateGroupId(
741 PortletDataContext portletDataContext, String portletId,
742 PortletPreferences portletPreferences) {
743
744 try {
745 Portlet portlet = PortletLocalServiceUtil.getPortletById(
746 portletDataContext.getCompanyId(), portletId);
747
748 if (Validator.isNotNull(portlet.getTemplateHandlerClass())) {
749 return GetterUtil.getLong(
750 portletPreferences.getValue("displayStyleGroupId", null));
751 }
752 }
753 catch (Exception e) {
754 }
755
756 return 0;
757 }
758
759 protected String getExportDataRootElementString(Element rootElement) {
760 if (rootElement == null) {
761 return StringPool.BLANK;
762 }
763
764 try {
765 Document document = rootElement.getDocument();
766
767 return document.formattedString();
768 }
769 catch (IOException ioe) {
770 return StringPool.BLANK;
771 }
772 }
773
774 protected long getExportModelCount(
775 ManifestSummary manifestSummary,
776 PortletDataHandlerControl[] portletDataHandlerControls) {
777
778 long totalModelCount = -1;
779
780 for (PortletDataHandlerControl portletDataHandlerControl :
781 portletDataHandlerControls) {
782
783 long modelCount = manifestSummary.getModelAdditionCount(
784 portletDataHandlerControl.getClassName(),
785 portletDataHandlerControl.getReferrerClassName());
786
787 if (portletDataHandlerControl
788 instanceof PortletDataHandlerBoolean) {
789
790 PortletDataHandlerBoolean portletDataHandlerBoolean =
791 (PortletDataHandlerBoolean)portletDataHandlerControl;
792
793 PortletDataHandlerControl[] childPortletDataHandlerControls =
794 portletDataHandlerBoolean.getChildren();
795
796 if (childPortletDataHandlerControls != null) {
797 long childModelCount = getExportModelCount(
798 manifestSummary, childPortletDataHandlerControls);
799
800 if (childModelCount != -1) {
801 if (modelCount == -1) {
802 modelCount = childModelCount;
803 }
804 else {
805 modelCount += childModelCount;
806 }
807 }
808 }
809 }
810
811 if (modelCount == -1) {
812 continue;
813 }
814
815 if (totalModelCount == -1) {
816 totalModelCount = modelCount;
817 }
818 else {
819 totalModelCount += modelCount;
820 }
821 }
822
823 return totalModelCount;
824 }
825
826
829 protected void setAlwaysExportable(boolean alwaysExportable) {
830 }
831
832
835 protected void setAlwaysStaged(boolean alwaysStaged) {
836 }
837
838 protected void setDataLevel(DataLevel dataLevel) {
839 _dataLevel = dataLevel;
840 }
841
842 protected void setDataLocalized(boolean dataLocalized) {
843 _dataLocalized = dataLocalized;
844 }
845
846 protected void setDataPortletPreferences(String... dataPortletPreferences) {
847 _dataPortletPreferences = dataPortletPreferences;
848 }
849
850 protected void setDeletionSystemEventStagedModelTypes(
851 StagedModelType... deletionSystemEventStagedModelTypes) {
852
853 _deletionSystemEventStagedModelTypes =
854 deletionSystemEventStagedModelTypes;
855 }
856
857 protected void setExportControls(
858 PortletDataHandlerControl... exportControls) {
859
860 _exportControls = exportControls;
861
862 setImportControls(exportControls);
863 }
864
865 protected void setExportMetadataControls(
866 PortletDataHandlerControl... exportMetadataControls) {
867
868 _exportMetadataControls = exportMetadataControls;
869
870 setImportMetadataControls(exportMetadataControls);
871 }
872
873 protected void setImportControls(
874 PortletDataHandlerControl... importControls) {
875
876 _importControls = importControls;
877 }
878
879 protected void setImportMetadataControls(
880 PortletDataHandlerControl... importMetadataControls) {
881
882 _importMetadataControls = importMetadataControls;
883 }
884
885 protected void setPublishToLiveByDefault(boolean publishToLiveByDefault) {
886 _publishToLiveByDefault = publishToLiveByDefault;
887 }
888
889 protected void setSupportsDataStrategyCopyAsNew(
890 boolean supportsDataStrategyCopyAsNew) {
891
892 _supportsDataStrategyCopyAsNew = supportsDataStrategyCopyAsNew;
893 }
894
895 private static Log _log = LogFactoryUtil.getLog(
896 BasePortletDataHandler.class);
897
898 private DataLevel _dataLevel = DataLevel.SITE;
899 private boolean _dataLocalized;
900 private String[] _dataPortletPreferences = StringPool.EMPTY_ARRAY;
901 private StagedModelType[] _deletionSystemEventStagedModelTypes =
902 new StagedModelType[0];
903 private PortletDataHandlerControl[] _exportControls =
904 new PortletDataHandlerControl[0];
905 private PortletDataHandlerControl[] _exportMetadataControls =
906 new PortletDataHandlerControl[0];
907 private PortletDataHandlerControl[] _importControls =
908 new PortletDataHandlerControl[0];
909 private PortletDataHandlerControl[] _importMetadataControls =
910 new PortletDataHandlerControl[0];
911 private String _portletId;
912 private boolean _publishToLiveByDefault;
913 private boolean _supportsDataStrategyCopyAsNew = true;
914
915 }