1
22
23 package com.liferay.portlet.social.service.impl;
24
25 import com.liferay.portal.theme.ThemeDisplay;
26 import com.liferay.portal.util.PortalUtil;
27 import com.liferay.portlet.social.model.SocialActivity;
28 import com.liferay.portlet.social.model.SocialActivityFeedEntry;
29 import com.liferay.portlet.social.model.SocialActivityInterpreter;
30 import com.liferay.portlet.social.model.impl.SocialActivityInterpreterImpl;
31 import com.liferay.portlet.social.service.SocialActivityLocalServiceUtil;
32 import com.liferay.portlet.social.service.base.SocialActivityInterpreterLocalServiceBaseImpl;
33
34 import java.util.ArrayList;
35 import java.util.List;
36
37
44 public class SocialActivityInterpreterLocalServiceImpl
45 extends SocialActivityInterpreterLocalServiceBaseImpl {
46
47 public void addActivityInterpreter(
48 SocialActivityInterpreter activityInterpreter) {
49
50 _activityInterpreters.add(activityInterpreter);
51 }
52
53 public void deleteActivityInterpreter(
54 SocialActivityInterpreter activityInterpreter) {
55
56 if (activityInterpreter != null) {
57 _activityInterpreters.remove(activityInterpreter);
58 }
59 }
60
61 public SocialActivityFeedEntry interpret(
62 SocialActivity activity, ThemeDisplay themeDisplay) {
63
64 if (activity.getMirrorActivityId() > 0) {
65 SocialActivity mirrorActivity = null;
66
67 try {
68 mirrorActivity = SocialActivityLocalServiceUtil.getActivity(
69 activity.getMirrorActivityId());
70 }
71 catch (Exception e) {
72 }
73
74 if (mirrorActivity != null) {
75 activity = mirrorActivity;
76 }
77 }
78
79 String className = PortalUtil.getClassName(activity.getClassNameId());
80
81 for (int i = 0; i < _activityInterpreters.size(); i++) {
82 SocialActivityInterpreterImpl activityInterpreter =
83 (SocialActivityInterpreterImpl)_activityInterpreters.get(i);
84
85 if (activityInterpreter.hasClassName(className)) {
86 SocialActivityFeedEntry activityFeedEntry =
87 activityInterpreter.interpret(activity, themeDisplay);
88
89 if (activityFeedEntry != null) {
90 activityFeedEntry.setPortletId(
91 activityInterpreter.getPortletId());
92
93 return activityFeedEntry;
94 }
95 }
96 }
97
98 return null;
99 }
100
101 private List<SocialActivityInterpreter> _activityInterpreters =
102 new ArrayList<SocialActivityInterpreter>();
103
104 }