001
014
015 package com.liferay.portlet.social.service.impl;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.theme.ThemeDisplay;
020 import com.liferay.portlet.social.model.SocialActivity;
021 import com.liferay.portlet.social.model.SocialActivityFeedEntry;
022 import com.liferay.portlet.social.model.SocialActivityInterpreter;
023 import com.liferay.portlet.social.model.SocialActivitySet;
024 import com.liferay.portlet.social.model.impl.SocialActivityInterpreterImpl;
025 import com.liferay.portlet.social.service.base.SocialActivityInterpreterLocalServiceBaseImpl;
026
027 import java.util.HashMap;
028 import java.util.Map;
029
030
047 public class SocialActivityInterpreterLocalServiceImpl
048 extends SocialActivityInterpreterLocalServiceBaseImpl {
049
050
055 public void addActivityInterpreter(
056 SocialActivityInterpreter activityInterpreter) {
057
058 String[] classNames = activityInterpreter.getClassNames();
059
060 for (String className : classNames) {
061 _activityInterpreters.put(className, activityInterpreter);
062 }
063 }
064
065
070 public void deleteActivityInterpreter(
071 SocialActivityInterpreter activityInterpreter) {
072
073 if (activityInterpreter != null) {
074 String[] classNames = activityInterpreter.getClassNames();
075
076 for (String className : classNames) {
077 _activityInterpreters.remove(className);
078 }
079 }
080 }
081
082
099 public SocialActivityFeedEntry interpret(
100 SocialActivity activity, ThemeDisplay themeDisplay) {
101
102 try {
103 if (activity.getUserId() == themeDisplay.getDefaultUserId()) {
104 return null;
105 }
106 }
107 catch (Exception e) {
108 _log.error(e, e);
109 }
110
111 if (activity.getMirrorActivityId() > 0) {
112 SocialActivity mirrorActivity = null;
113
114 try {
115 mirrorActivity = socialActivityLocalService.getActivity(
116 activity.getMirrorActivityId());
117 }
118 catch (Exception e) {
119 }
120
121 if (mirrorActivity != null) {
122 activity = mirrorActivity;
123 }
124 }
125
126 SocialActivityInterpreterImpl activityInterpreter =
127 (SocialActivityInterpreterImpl)_activityInterpreters.get(
128 activity.getClassName());
129
130 if (activityInterpreter == null) {
131 return null;
132 }
133
134 SocialActivityFeedEntry activityFeedEntry =
135 activityInterpreter.interpret(activity, themeDisplay);
136
137 if (activityFeedEntry == null) {
138 return null;
139 }
140
141 activityFeedEntry.setPortletId(activityInterpreter.getPortletId());
142
143 return activityFeedEntry;
144 }
145
146 public SocialActivityFeedEntry interpret(
147 SocialActivitySet activitySet, ThemeDisplay themeDisplay) {
148
149 try {
150 if (activitySet.getUserId() == themeDisplay.getDefaultUserId()) {
151 return null;
152 }
153 }
154 catch (Exception e) {
155 _log.error(e, e);
156 }
157
158 SocialActivityInterpreterImpl activityInterpreter =
159 (SocialActivityInterpreterImpl)_activityInterpreters.get(
160 activitySet.getClassName());
161
162 if (activityInterpreter == null) {
163 return null;
164 }
165
166 SocialActivityFeedEntry activityFeedEntry =
167 activityInterpreter.interpret(activitySet, themeDisplay);
168
169 if (activityFeedEntry == null) {
170 return null;
171 }
172
173 activityFeedEntry.setPortletId(activityInterpreter.getPortletId());
174
175 return activityFeedEntry;
176 }
177
178 private static Log _log = LogFactoryUtil.getLog(
179 SocialActivityInterpreterLocalServiceImpl.class);
180
181 private Map<String, SocialActivityInterpreter> _activityInterpreters =
182 new HashMap<String, SocialActivityInterpreter>();
183
184 }