001
014
015 package com.liferay.portlet.exportimport.lar;
016
017 import com.liferay.portal.kernel.backgroundtask.BackgroundTaskConstants;
018 import com.liferay.portal.kernel.backgroundtask.BackgroundTaskStatusMessageSender;
019 import com.liferay.portal.kernel.backgroundtask.BackgroundTaskThreadLocal;
020 import com.liferay.portal.kernel.messaging.Message;
021 import com.liferay.portal.kernel.util.LongWrapper;
022 import com.liferay.portal.model.Portlet;
023 import com.liferay.portal.model.StagedModel;
024 import com.liferay.portal.service.PortletLocalServiceUtil;
025
026 import java.util.HashMap;
027 import java.util.Map;
028
029
032 public class PortletDataHandlerStatusMessageSenderImpl
033 implements PortletDataHandlerStatusMessageSender {
034
035
039 @Deprecated
040 @Override
041 public void sendStatusMessage(
042 String messageType, ManifestSummary manifestSummary) {
043
044 sendStatusMessage(messageType, (String[])null, manifestSummary);
045 }
046
047 @Override
048 public void sendStatusMessage(
049 String messageType, String portletId, ManifestSummary manifestSummary) {
050
051 Message message = new Message();
052
053 init(message, messageType, manifestSummary);
054
055 message.put("portletId", portletId);
056
057 Portlet portlet = PortletLocalServiceUtil.getPortletById(portletId);
058
059 if (portlet != null) {
060 PortletDataHandler portletDataHandler =
061 portlet.getPortletDataHandlerInstance();
062
063 long portletModelAdditionCountersTotal =
064 portletDataHandler.getExportModelCount(manifestSummary);
065
066 if (portletModelAdditionCountersTotal < 0) {
067 portletModelAdditionCountersTotal = 0;
068 }
069
070 message.put(
071 "portletModelAdditionCountersTotal",
072 portletModelAdditionCountersTotal);
073 }
074
075 _backgroundTaskStatusMessageSender.sendBackgroundTaskStatusMessage(
076 message);
077 }
078
079 @Override
080 public void sendStatusMessage(
081 String messageType, String[] portletIds,
082 ManifestSummary manifestSummary) {
083
084 Message message = new Message();
085
086 init(message, messageType, manifestSummary);
087
088 message.put("portletIds", portletIds);
089
090 _backgroundTaskStatusMessageSender.sendBackgroundTaskStatusMessage(
091 message);
092 }
093
094 @Override
095 public <T extends StagedModel> void sendStatusMessage(
096 String messageType, T stagedModel, ManifestSummary manifestSummary) {
097
098 Message message = new Message();
099
100 init(message, messageType, manifestSummary);
101
102 StagedModelDataHandler<T> stagedModelDataHandler =
103 (StagedModelDataHandler<T>)
104 StagedModelDataHandlerRegistryUtil.getStagedModelDataHandler(
105 stagedModel.getModelClassName());
106
107 message.put(
108 "stagedModelName",
109 stagedModelDataHandler.getDisplayName(stagedModel));
110
111 message.put(
112 "stagedModelType",
113 String.valueOf(stagedModel.getStagedModelType()));
114 message.put("uuid", stagedModel.getUuid());
115
116 _backgroundTaskStatusMessageSender.sendBackgroundTaskStatusMessage(
117 message);
118 }
119
120 public void setBackgroundTaskStatusMessageSender(
121 BackgroundTaskStatusMessageSender backgroundTaskStatusMessageSender) {
122
123 _backgroundTaskStatusMessageSender = backgroundTaskStatusMessageSender;
124 }
125
126 protected void init(
127 Message message, String messageType, ManifestSummary manifestSummary) {
128
129 message.put(
130 BackgroundTaskConstants.BACKGROUND_TASK_ID,
131 BackgroundTaskThreadLocal.getBackgroundTaskId());
132 message.put("messageType", messageType);
133
134 Map<String, LongWrapper> modelAdditionCounters =
135 manifestSummary.getModelAdditionCounters();
136
137 message.put(
138 "modelAdditionCounters", new HashMap<>(modelAdditionCounters));
139
140 Map<String, LongWrapper> modelDeletionCounters =
141 manifestSummary.getModelDeletionCounters();
142
143 message.put(
144 "modelDeletionCounters", new HashMap<>(modelDeletionCounters));
145 }
146
147 private BackgroundTaskStatusMessageSender
148 _backgroundTaskStatusMessageSender;
149
150 }