001
014
015 package com.liferay.portlet.messageboards.model.impl;
016
017 import com.liferay.portal.kernel.workflow.WorkflowConstants;
018 import com.liferay.portal.util.PropsValues;
019 import com.liferay.portlet.messageboards.model.MBCategory;
020 import com.liferay.portlet.messageboards.model.MBMessage;
021 import com.liferay.portlet.messageboards.model.MBMessageDisplay;
022 import com.liferay.portlet.messageboards.model.MBThread;
023 import com.liferay.portlet.messageboards.model.MBThreadConstants;
024 import com.liferay.portlet.messageboards.model.MBTreeWalker;
025 import com.liferay.portlet.messageboards.service.MBMessageLocalService;
026
027 import java.util.Comparator;
028
029
033 public class MBMessageDisplayImpl implements MBMessageDisplay {
034
035 public MBMessageDisplayImpl(
036 MBMessage message, MBMessage parentMessage, MBCategory category,
037 MBThread thread, MBThread previousThread, MBThread nextThread,
038 int status, MBMessageLocalService messageLocalService,
039 Comparator<MBMessage> comparator) {
040
041 _message = message;
042 _parentMessage = parentMessage;
043 _category = category;
044 _thread = thread;
045
046 _treeWalker = new MBTreeWalkerImpl(
047 message.getThreadId(), status, messageLocalService, comparator);
048
049 _previousThread = previousThread;
050 _nextThread = nextThread;
051 _threadView = MBThreadConstants.THREAD_VIEW_TREE;
052
053 int dicussionMessagesCount = 0;
054
055 if (message.isDiscussion() &&
056 (PropsValues.DISCUSSION_MAX_COMMENTS > 0)) {
057
058 dicussionMessagesCount =
059 messageLocalService.getDiscussionMessagesCount(
060 message.getClassName(), message.getClassPK(),
061 WorkflowConstants.STATUS_APPROVED);
062 }
063
064 _discussionMessagesCount = dicussionMessagesCount;
065 }
066
067
073 @Deprecated
074 public MBMessageDisplayImpl(
075 MBMessage message, MBMessage parentMessage, MBCategory category,
076 MBThread thread, MBThread previousThread, MBThread nextThread,
077 int status, String threadView,
078 MBMessageLocalService messageLocalService,
079 Comparator<MBMessage> comparator) {
080
081 _message = message;
082 _parentMessage = parentMessage;
083 _category = category;
084 _thread = thread;
085
086 if (!threadView.equals(MBThreadConstants.THREAD_VIEW_FLAT)) {
087 _treeWalker = new MBTreeWalkerImpl(
088 message.getThreadId(), status, messageLocalService, comparator);
089 }
090 else {
091 _treeWalker = null;
092 }
093
094 _previousThread = previousThread;
095 _nextThread = nextThread;
096 _threadView = threadView;
097
098 int dicussionMessagesCount = 0;
099
100 if (message.isDiscussion() &&
101 (PropsValues.DISCUSSION_MAX_COMMENTS > 0)) {
102
103 dicussionMessagesCount =
104 messageLocalService.getDiscussionMessagesCount(
105 message.getClassName(), message.getClassPK(),
106 WorkflowConstants.STATUS_APPROVED);
107 }
108
109 _discussionMessagesCount = dicussionMessagesCount;
110 }
111
112 @Override
113 public MBCategory getCategory() {
114 return _category;
115 }
116
117 @Override
118 public MBMessage getMessage() {
119 return _message;
120 }
121
122 @Override
123 public MBThread getNextThread() {
124 return _nextThread;
125 }
126
127 @Override
128 public MBMessage getParentMessage() {
129 return _parentMessage;
130 }
131
132 @Override
133 public MBThread getPreviousThread() {
134 return _previousThread;
135 }
136
137 @Override
138 public MBThread getThread() {
139 return _thread;
140 }
141
142
145 @Deprecated
146 @Override
147 public String getThreadView() {
148 return _threadView;
149 }
150
151 @Override
152 public MBTreeWalker getTreeWalker() {
153 return _treeWalker;
154 }
155
156 @Override
157 public boolean isDiscussionMaxComments() {
158 if (_message.isDiscussion() &&
159 (PropsValues.DISCUSSION_MAX_COMMENTS > 0) &&
160 (PropsValues.DISCUSSION_MAX_COMMENTS <= _discussionMessagesCount)) {
161
162 return true;
163 }
164
165 return false;
166 }
167
168 private final MBCategory _category;
169 private final int _discussionMessagesCount;
170 private final MBMessage _message;
171 private final MBThread _nextThread;
172 private final MBMessage _parentMessage;
173 private final MBThread _previousThread;
174 private final MBThread _thread;
175 private final String _threadView;
176 private final MBTreeWalker _treeWalker;
177
178 }