001: /*
002: * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/db/ThreadDAO.java,v 1.37 2007/10/23 11:35:26 phuongpdd Exp $
003: * $Author: phuongpdd $
004: * $Revision: 1.37 $
005: * $Date: 2007/10/23 11:35:26 $
006: *
007: * ====================================================================
008: *
009: * Copyright (C) 2002-2007 by MyVietnam.net
010: *
011: * All copyright notices regarding mvnForum MUST remain
012: * intact in the scripts and in the outputted HTML.
013: * The "powered by" text/logo with a link back to
014: * http://www.mvnForum.com and http://www.MyVietnam.net in
015: * the footer of the pages MUST remain visible when the pages
016: * are viewed on the internet or intranet.
017: *
018: * This program is free software; you can redistribute it and/or modify
019: * it under the terms of the GNU General Public License as published by
020: * the Free Software Foundation; either version 2 of the License, or
021: * any later version.
022: *
023: * This program is distributed in the hope that it will be useful,
024: * but WITHOUT ANY WARRANTY; without even the implied warranty of
025: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
026: * GNU General Public License for more details.
027: *
028: * You should have received a copy of the GNU General Public License
029: * along with this program; if not, write to the Free Software
030: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
031: *
032: * Support can be obtained from support forums at:
033: * http://www.mvnForum.com/mvnforum/index
034: *
035: * Correspondence and Marketing Questions can be sent to:
036: * info at MyVietnam net
037: *
038: * @author: Minh Nguyen
039: */
040: package com.mvnforum.db;
041:
042: import java.sql.Timestamp;
043: import java.util.Collection;
044:
045: import net.myvietnam.mvncore.exception.*;
046:
047: public interface ThreadDAO {
048:
049: public static final String TABLE_NAME = DatabaseConfig.TABLE_PREFIX
050: + "Thread";
051:
052: public static final int ALL_FORUMS = -1;
053:
054: public static final int MAX_ROWS_TO_RETURN = Integer.MAX_VALUE;
055:
056: public static final int DEFAULT_OFFSET = 0;
057:
058: public void findByPrimaryKey(int threadID)
059: throws ObjectNotFoundException, DatabaseException;
060:
061: public int createThread(int forumID, String memberName,
062: String lastPostMemberName, String threadTopic,
063: String threadBody, int threadVoteCount,
064: int threadVoteTotalStars, Timestamp threadCreationDate,
065: Timestamp threadLastPostDate, int threadType,
066: int threadPriority, int threadOption, int threadStatus,
067: int threadHasPoll, int threadViewCount,
068: int threadReplyCount, String threadIcon,
069: int threadDuration, int threadAttachCount /* to backup */)
070: throws ObjectNotFoundException, CreateException,
071: DatabaseException, ForeignKeyNotFoundException;
072:
073: public void delete(int threadID) throws DatabaseException,
074: ObjectNotFoundException;
075:
076: public void delete_inForum(int forumID) throws DatabaseException;
077:
078: public void updateForumID(int threadID, // primary key
079: int forumID) throws ObjectNotFoundException,
080: DatabaseException, ForeignKeyNotFoundException;
081:
082: public void updateThreadStatus(int threadID, // primary key
083: int threadStatus) throws ObjectNotFoundException,
084: DatabaseException;
085:
086: public void updateThreadType(int threadID, // primary key
087: int threadType) throws ObjectNotFoundException,
088: DatabaseException;
089:
090: public void updateTopic_Body_Icon(
091: int threadID, // primary key
092: String threadTopic, String threadBody, String threadIcon,
093: int threadPriority) throws ObjectNotFoundException,
094: DatabaseException;
095:
096: public void increaseReplyCount(int threadID)
097: throws DatabaseException, ObjectNotFoundException;
098:
099: public void updateLastPostMemberName(int threadID, // primary key
100: String lastPostMemberName) throws ObjectNotFoundException,
101: DatabaseException, ForeignKeyNotFoundException;
102:
103: public void updateLastPostDate(int threadID, // primary key
104: Timestamp threadLastPostDate)
105: throws ObjectNotFoundException, DatabaseException;
106:
107: public void updateThreadAttachCount(int threadID, int count)
108: throws ObjectNotFoundException, DatabaseException;
109:
110: public ThreadBean getThread(int threadID)
111: throws ObjectNotFoundException, DatabaseException;
112:
113: public int getNumberOfEnableThreads_inForum(int forumID)
114: throws DatabaseException;
115:
116: public int getNumberOfDisableThreads_inForum(int forumID)
117: throws DatabaseException;
118:
119: public int getNumberOfNormalEnableThreads_inForum(int forumID)
120: throws DatabaseException;
121:
122: public int getNumberOfEnableThreads(boolean onlyNoReply,
123: int status, int category, int forum)
124: throws DatabaseException;
125:
126: public Collection getEnableThreads_withSortSupport_limit(
127: int offset, int rowsToReturn, String sort, String order,
128: boolean onlyNoReply, int status, int category, int forum)
129: throws IllegalArgumentException, DatabaseException;
130:
131: public Collection getEnableThreads_withSortSupport_limit(
132: int offset, int rowsToReturn, String sort, String order,
133: Timestamp from, Timestamp to)
134: throws IllegalArgumentException, DatabaseException;
135:
136: public int getNumberOfDisableThreads() throws DatabaseException;
137:
138: public Collection getDisableBeans_withSortSupport_limit(int offset,
139: int rowsToReturn, String sort, String order)
140: throws IllegalArgumentException, DatabaseException;
141:
142: public Collection getNormalEnableThreads_inForum_withSortSupport_limit(
143: int forumID, int offset, int rowsToReturn, String sort,
144: String order) throws IllegalArgumentException,
145: DatabaseException;
146:
147: public Collection getAllEnableThreads_inForum_withSortSupport_limit(
148: int forumID, int offset, int rowsToReturn, String sort,
149: String order) throws IllegalArgumentException,
150: DatabaseException;
151:
152: public Collection getDisableThreads_inForum_withSortSupport_limit(
153: int forumID, int offset, int rowsToReturn, String sort,
154: String order) throws IllegalArgumentException,
155: DatabaseException;
156:
157: // Should Enable only ???
158: public Collection getThreads_inFavorite_inMember(int memberID)
159: throws DatabaseException;
160:
161: public Collection getEnableStickies_inForum(int forumID)
162: throws DatabaseException;
163:
164: public Collection getEnableForumAnnouncements_inForum(int forumID)
165: throws DatabaseException;
166:
167: public Collection getEnableGlobalAnnouncements()
168: throws DatabaseException;
169:
170: public void increaseViewCount(int threadID)
171: throws DatabaseException, ObjectNotFoundException;
172:
173: public void updateReplyCount(int threadID, // primary key
174: int threadReplyCount) throws IllegalArgumentException,
175: DatabaseException, ObjectNotFoundException;
176:
177: public void updateThreadHasPoll(int threadID, int pollCount)
178: throws ObjectNotFoundException, DatabaseException;
179:
180: public int getPreviousEnableThread(int forumID, int threadID)
181: throws DatabaseException;
182:
183: public int getNextEnableThread(int forumID, int threadID)
184: throws DatabaseException;
185:
186: public Collection getEnableThreads_inGlobal(Timestamp sinceDate)
187: throws DatabaseException;
188:
189: public Collection getEnableThreads_inCategory(int categoryID,
190: Timestamp sinceDate) throws DatabaseException;
191:
192: public Collection getEnableThreads_inForum(int forumID,
193: Timestamp sinceDate) throws DatabaseException;
194:
195: public Collection getEnableThreads_inThread(int threadID,
196: Timestamp sinceDate) throws DatabaseException;
197:
198: public int getNumberOfEnableThreadsWithPendingPosts()
199: throws DatabaseException;
200:
201: public int getNumberOfEnableThreadsWithPendingPosts_inForum(
202: int forumID) throws DatabaseException;
203:
204: /**
205: * This method is used to get enable threads that having at least one pending post (for moderation)
206: *
207: * Note: current implementation use the NOSCROLL method which is quite slow
208: *
209: * @param offset
210: * @param rowsToReturn
211: * @param sort
212: * @param order
213: * @return
214: * @throws java.lang.IllegalArgumentException if the arguments are not valid
215: * @throws DatabaseException
216: */
217: public Collection getEnableThreadsWithPendingPosts_withSortSupport_limit(
218: int offset, int rowsToReturn, String sort, String order)
219: throws IllegalArgumentException, DatabaseException,
220: ObjectNotFoundException;
221:
222: public Collection getEnableThreadsWithPendingPosts_inForum_withSortSupport_limit(
223: int forumID, int offset, int rowsToReturn, String sort,
224: String order) throws IllegalArgumentException,
225: DatabaseException, ObjectNotFoundException;
226:
227: }
|