001: /**********************************************************************************
002: * $URL: https://source.sakaiproject.org/svn/msgcntr/tags/sakai_2-4-1/messageforums-api/src/java/org/sakaiproject/api/app/messageforums/MessageForumsMessageManager.java $
003: * $Id: MessageForumsMessageManager.java 22605 2007-03-14 19:07:04Z wagnermr@iupui.edu $
004: ***********************************************************************************
005: *
006: * Copyright (c) 2003, 2004, 2005, 2006, 2007 The Sakai Foundation.
007: *
008: * Licensed under the Educational Community License, Version 1.0 (the "License");
009: * you may not use this file except in compliance with the License.
010: * You may obtain a copy of the License at
011: *
012: * http://www.opensource.org/licenses/ecl1.php
013: *
014: * Unless required by applicable law or agreed to in writing, software
015: * distributed under the License is distributed on an "AS IS" BASIS,
016: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: * See the License for the specific language governing permissions and
018: * limitations under the License.
019: *
020: **********************************************************************************/package org.sakaiproject.api.app.messageforums;
021:
022: import java.util.Date;
023: import java.util.List;
024: import java.util.Map;
025:
026: public interface MessageForumsMessageManager {
027:
028: public Attachment createAttachment();
029:
030: public Message createMessage(String typeId);
031:
032: public PrivateMessage createPrivateMessage();
033:
034: public Message createDiscussionMessage();
035:
036: public Message createOpenMessage();
037:
038: public void saveMessage(Message message);
039:
040: public void deleteMessage(Message message);
041:
042: public Message getMessageById(Long messageId);
043:
044: public Message getMessageByIdWithAttachments(Long messageId);
045:
046: public void markMessageApproval(Long messageId, boolean approved);
047:
048: public void markMessageReadForUser(Long topicId, Long messageId,
049: boolean read);
050:
051: public void markMessageReadForUser(Long topicId, Long messageId,
052: boolean read, String userId);
053:
054: public boolean isMessageReadForUser(Long topicId, Long messageId);
055:
056: public UnreadStatus findUnreadStatus(Long topicId, Long messageId);
057:
058: public UnreadStatus findUnreadStatusByUserId(Long topicId,
059: Long messageId, String userId);
060:
061: public void deleteUnreadStatus(Long topicId, Long messageId);
062:
063: public int findMessageCountByTopicId(Long topicId);
064:
065: public int findViewableMessageCountByTopicIdByUserId(Long topicId,
066: String userId);
067:
068: public int findViewableMessageCountByTopicId(Long topicId);
069:
070: public int findAuhtoredMessageCountByTopicIdByUserId(
071: final Long topicId, final String userId);
072:
073: public int findUnreadMessageCountByTopicIdByUserId(Long topicId,
074: String userId);
075:
076: public int findUnreadMessageCountByTopicId(Long topicId);
077:
078: public int findUnreadViewableMessageCountByTopicIdByUserId(
079: Long topicId, String userId);
080:
081: public int findUnreadViewableMessageCountByTopicId(Long topicId);
082:
083: public int findReadMessageCountByTopicIdByUserId(Long topicId,
084: String userId);
085:
086: public int findReadMessageCountByTopicId(Long topicId);
087:
088: public int findReadViewableMessageCountByTopicId(Long topicId);
089:
090: public List findDiscussionForumMessageCountsForAllSites(
091: final List siteList);
092:
093: public List findDiscussionForumMessageRemoveCountsForAllSites(
094: List siteList, List roleList);
095:
096: public List findDiscussionForumReadMessageCountsForAllSites();
097:
098: public List findDiscussionForumReadMessageRemoveCountsForAllSites(
099: List roleList);
100:
101: public List findMessagesByTopicId(Long topicId);
102:
103: public Attachment getAttachmentById(Long attachmentId);
104:
105: public void getChildMsgs(final Long messageId, List returnList);
106:
107: public void deleteMsgWithChild(final Long messageId);
108:
109: public List getFirstLevelChildMsgs(final Long messageId);
110:
111: public List sortMessageBySubject(Topic topic, boolean asc);
112:
113: public List sortMessageByAuthor(Topic topic, boolean asc);
114:
115: public List sortMessageByDate(Topic topic, boolean asc);
116:
117: public List sortMessageByDate(List list, boolean asc);
118:
119: public List getAllRelatedMsgs(final Long messageId);
120:
121: public List findPvtMsgsBySearchText(final String typeUuid,
122: final String searchText, final Date searchFromDate,
123: final Date searchToDate, final boolean searchByText,
124: final boolean searchByAuthor, final boolean searchByBody,
125: final boolean searchByLabel, final boolean searchByDate);
126:
127: public String getAttachmentUrl(String id);
128:
129: public boolean currentToolMatch(String toolId);
130:
131: public boolean isToolInSite(String siteId, String toolId);
132:
133: public Map getReadStatusForMessagesWithId(List msgIds, String userId);
134:
135: /**
136: * Returns list of all messages in site with Pending approval for which
137: * at least one of the given memberships has moderate perm
138: * @return
139: */
140: public List getPendingMsgsInSiteByMembership(
141: final List membershipList);
142:
143: /**
144: * Retrieves all pending messages in a given topic
145: * @param topicId
146: * @return
147: */
148: public List getPendingMsgsInTopic(final Long topicId);
149: }
|