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.portal.util.PortalUtil;
021 import com.liferay.portlet.social.model.SocialActivity;
022 import com.liferay.portlet.social.model.SocialActivityFeedEntry;
023 import com.liferay.portlet.social.model.SocialActivityInterpreter;
024 import com.liferay.portlet.social.model.impl.SocialActivityInterpreterImpl;
025 import com.liferay.portlet.social.service.base.SocialActivityInterpreterLocalServiceBaseImpl;
026
027 import java.util.ArrayList;
028 import java.util.List;
029
030
047 public class SocialActivityInterpreterLocalServiceImpl
048 extends SocialActivityInterpreterLocalServiceBaseImpl {
049
050
055 public void addActivityInterpreter(
056 SocialActivityInterpreter activityInterpreter) {
057
058 _activityInterpreters.add(activityInterpreter);
059 }
060
061
066 public void deleteActivityInterpreter(
067 SocialActivityInterpreter activityInterpreter) {
068
069 if (activityInterpreter != null) {
070 _activityInterpreters.remove(activityInterpreter);
071 }
072 }
073
074
091 public SocialActivityFeedEntry interpret(
092 SocialActivity activity, ThemeDisplay themeDisplay) {
093
094 try {
095 if (activity.getUserId() == themeDisplay.getDefaultUserId()) {
096 return null;
097 }
098 }
099 catch (Exception e) {
100 _log.error(e, e);
101 }
102
103 if (activity.getMirrorActivityId() > 0) {
104 SocialActivity mirrorActivity = null;
105
106 try {
107 mirrorActivity = socialActivityLocalService.getActivity(
108 activity.getMirrorActivityId());
109 }
110 catch (Exception e) {
111 }
112
113 if (mirrorActivity != null) {
114 activity = mirrorActivity;
115 }
116 }
117
118 String className = PortalUtil.getClassName(activity.getClassNameId());
119
120 for (int i = 0; i < _activityInterpreters.size(); i++) {
121 SocialActivityInterpreterImpl activityInterpreter =
122 (SocialActivityInterpreterImpl)_activityInterpreters.get(i);
123
124 if (activityInterpreter.hasClassName(className)) {
125 SocialActivityFeedEntry activityFeedEntry =
126 activityInterpreter.interpret(activity, themeDisplay);
127
128 if (activityFeedEntry != null) {
129 activityFeedEntry.setPortletId(
130 activityInterpreter.getPortletId());
131
132 return activityFeedEntry;
133 }
134 }
135 }
136
137 return null;
138 }
139
140 private static Log _log = LogFactoryUtil.getLog(
141 SocialActivityInterpreterLocalServiceImpl.class);
142
143 private List<SocialActivityInterpreter> _activityInterpreters =
144 new ArrayList<SocialActivityInterpreter>();
145
146 }