/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portlet.messageboards.model.impl;
import com.liferay.message.boards.kernel.model.MBCategory;
import com.liferay.message.boards.kernel.model.MBMessage;
import com.liferay.message.boards.kernel.model.MBMessageDisplay;
import com.liferay.message.boards.kernel.model.MBThread;
import com.liferay.message.boards.kernel.model.MBThreadConstants;
import com.liferay.message.boards.kernel.model.MBTreeWalker;
import com.liferay.message.boards.kernel.service.MBMessageLocalService;
import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.util.PropsValues;
import java.util.Comparator;
/**
* @author Brian Wing Shun Chan
* @author Shuyang Zhou
*/
public class MBMessageDisplayImpl implements MBMessageDisplay {
public MBMessageDisplayImpl(
long userId, MBMessage message, MBMessage parentMessage,
MBCategory category, MBThread thread, int status,
MBMessageLocalService messageLocalService,
Comparator<MBMessage> comparator) {
_message = message;
_parentMessage = parentMessage;
_category = category;
_thread = thread;
_treeWalker = new MBTreeWalkerImpl(
userId, message.getThreadId(), status, messageLocalService,
comparator);
_previousThread = null;
_nextThread = null;
_threadView = MBThreadConstants.THREAD_VIEW_TREE;
int dicussionMessagesCount = 0;
if (message.isDiscussion() &&
(PropsValues.DISCUSSION_MAX_COMMENTS > 0)) {
dicussionMessagesCount =
messageLocalService.getDiscussionMessagesCount(
message.getClassName(), message.getClassPK(),
WorkflowConstants.STATUS_APPROVED);
}
_discussionMessagesCount = dicussionMessagesCount;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #MBMessageDisplayImpl(long,
* MBMessage, MBMessage, MBCategory, MBThread, int,
* MBMessageLocalService, Comparator)}
*/
@Deprecated
public MBMessageDisplayImpl(
MBMessage message, MBMessage parentMessage, MBCategory category,
MBThread thread, int status, MBMessageLocalService messageLocalService,
Comparator<MBMessage> comparator) {
this(
0, message, parentMessage, category, thread, status,
messageLocalService, comparator);
}
/**
* @deprecated As of 7.0.0, replaced by {@link
* #MBMessageDisplayImpl(MBMessage, MBMessage, MBCategory,
* MBThread, int, MBMessageLocalService, Comparator)}
*/
@Deprecated
public MBMessageDisplayImpl(
MBMessage message, MBMessage parentMessage, MBCategory category,
MBThread thread, MBThread previousThread, MBThread nextThread,
int status, String threadView,
MBMessageLocalService messageLocalService,
Comparator<MBMessage> comparator) {
_message = message;
_parentMessage = parentMessage;
_category = category;
_thread = thread;
if (!threadView.equals(MBThreadConstants.THREAD_VIEW_FLAT)) {
_treeWalker = new MBTreeWalkerImpl(
message.getThreadId(), status, messageLocalService, comparator);
}
else {
_treeWalker = null;
}
_previousThread = previousThread;
_nextThread = nextThread;
_threadView = threadView;
int dicussionMessagesCount = 0;
if (message.isDiscussion() &&
(PropsValues.DISCUSSION_MAX_COMMENTS > 0)) {
dicussionMessagesCount =
messageLocalService.getDiscussionMessagesCount(
message.getClassName(), message.getClassPK(),
WorkflowConstants.STATUS_APPROVED);
}
_discussionMessagesCount = dicussionMessagesCount;
}
@Override
public MBCategory getCategory() {
return _category;
}
@Override
public MBMessage getMessage() {
return _message;
}
/**
* @deprecated As of 7.0.0, with no direct replacement
*/
@Deprecated
@Override
public MBThread getNextThread() {
return _nextThread;
}
@Override
public MBMessage getParentMessage() {
return _parentMessage;
}
/**
* @deprecated As of 7.0.0, with no direct replacement
*/
@Deprecated
@Override
public MBThread getPreviousThread() {
return _previousThread;
}
@Override
public MBThread getThread() {
return _thread;
}
/**
* @deprecated As of 7.0.0, with no direct replacement
*/
@Deprecated
@Override
public String getThreadView() {
return _threadView;
}
@Override
public MBTreeWalker getTreeWalker() {
return _treeWalker;
}
@Override
public boolean isDiscussionMaxComments() {
if (_message.isDiscussion() &&
(PropsValues.DISCUSSION_MAX_COMMENTS > 0) &&
(PropsValues.DISCUSSION_MAX_COMMENTS <= _discussionMessagesCount)) {
return true;
}
return false;
}
private final MBCategory _category;
private final int _discussionMessagesCount;
private final MBMessage _message;
private final MBThread _nextThread;
private final MBMessage _parentMessage;
private final MBThread _previousThread;
private final MBThread _thread;
private final String _threadView;
private final MBTreeWalker _treeWalker;
}