001
014
015 package com.liferay.portlet.journal.social;
016
017 import com.liferay.portal.kernel.util.Validator;
018 import com.liferay.portal.security.permission.PermissionChecker;
019 import com.liferay.portal.service.ServiceContext;
020 import com.liferay.portal.util.PortalUtil;
021 import com.liferay.portlet.journal.model.JournalArticle;
022 import com.liferay.portlet.journal.model.JournalArticleConstants;
023 import com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil;
024 import com.liferay.portlet.journal.service.permission.JournalArticlePermission;
025 import com.liferay.portlet.social.model.BaseSocialActivityInterpreter;
026 import com.liferay.portlet.social.model.SocialActivity;
027 import com.liferay.portlet.social.model.SocialActivityConstants;
028
029
033 public class JournalArticleActivityInterpreter
034 extends BaseSocialActivityInterpreter {
035
036 public String[] getClassNames() {
037 return _CLASS_NAMES;
038 }
039
040 @Override
041 protected String getEntryTitle(
042 SocialActivity activity, ServiceContext serviceContext)
043 throws Exception {
044
045 JournalArticle article =
046 JournalArticleLocalServiceUtil.getLatestArticle(
047 activity.getClassPK());
048
049 return article.getTitle(serviceContext.getLocale());
050 }
051
052 @Override
053 protected String getPath(
054 SocialActivity activity, ServiceContext serviceContext)
055 throws Exception {
056
057 JournalArticle article =
058 JournalArticleLocalServiceUtil.getLatestArticle(
059 activity.getClassPK());
060
061 if (Validator.isNotNull(article.getLayoutUuid())) {
062 String groupFriendlyURL = PortalUtil.getGroupFriendlyURL(
063 serviceContext.getScopeGroup(), false,
064 serviceContext.getThemeDisplay());
065
066 return groupFriendlyURL.concat(
067 JournalArticleConstants.CANONICAL_URL_SEPARATOR).concat(
068 article.getUrlTitle());
069 }
070
071 return null;
072 }
073
074 @Override
075 protected String getTitlePattern(
076 String groupName, SocialActivity activity) {
077
078 int activityType = activity.getType();
079
080 if (activityType == JournalActivityKeys.ADD_ARTICLE) {
081 if (Validator.isNull(groupName)) {
082 return "activity-journal-article-add-article";
083 }
084 else {
085 return "activity-journal-article-add-article-in";
086 }
087 }
088 else if (activityType == JournalActivityKeys.UPDATE_ARTICLE) {
089 if (Validator.isNull(groupName)) {
090 return "activity-journal-article-update-article";
091 }
092 else {
093 return "activity-journal-article-update-article-in";
094 }
095 }
096 else if (activityType == SocialActivityConstants.TYPE_MOVE_TO_TRASH) {
097 if (Validator.isNull(groupName)) {
098 return "activity-journal-article-move-to-trash";
099 }
100 else {
101 return "activity-journal-article-move-to-trash-in";
102 }
103 }
104 else if (activityType ==
105 SocialActivityConstants.TYPE_RESTORE_FROM_TRASH) {
106
107 if (Validator.isNull(groupName)) {
108 return "activity-journal-article-restore-from-trash";
109 }
110 else {
111 return "activity-journal-article-restore-from-trash-in";
112 }
113 }
114
115 return null;
116 }
117
118 @Override
119 protected boolean hasPermissions(
120 PermissionChecker permissionChecker, SocialActivity activity,
121 String actionId, ServiceContext serviceContext)
122 throws Exception {
123
124 return JournalArticlePermission.contains(
125 permissionChecker, activity.getClassPK(), actionId);
126 }
127
128 private static final String[] _CLASS_NAMES =
129 {JournalArticle.class.getName()};
130
131 }