001: /*
002: * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/db/PostDAO.java,v 1.24 2007/10/09 11:09:19 lexuanttkhtn Exp $
003: * $Author: lexuanttkhtn $
004: * $Revision: 1.24 $
005: * $Date: 2007/10/09 11:09:19 $
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.CreateException;
046: import net.myvietnam.mvncore.exception.DatabaseException;
047: import net.myvietnam.mvncore.exception.ObjectNotFoundException;
048: import net.myvietnam.mvncore.exception.ForeignKeyNotFoundException;
049:
050: public interface PostDAO {
051:
052: public static final String TABLE_NAME = DatabaseConfig.TABLE_PREFIX
053: + "Post";
054:
055: public void findByPrimaryKey(int postID)
056: throws ObjectNotFoundException, DatabaseException;
057:
058: public int createPost(int parentPostID, int forumID, int threadID,
059: int memberID, String memberName, String lastEditMemberName,
060: String postTopic, String postBody,
061: Timestamp postCreationDate, Timestamp postLastEditDate,
062: String postCreationIP, String postLastEditIP,
063: int postEditCount, int postFormatOption, int postOption,
064: int postStatus, String postIcon, int postAttachCount)
065: throws CreateException, DatabaseException,
066: ForeignKeyNotFoundException;
067:
068: public void delete(int postID) throws DatabaseException,
069: ObjectNotFoundException;
070:
071: public void delete_inThread(int threadID) throws DatabaseException;
072:
073: public void delete_inForum(int forumID) throws DatabaseException;
074:
075: public void update(
076: int postID, // primary key
077: String lastEditMemberName, String postTopic,
078: String postBody, Timestamp postLastEditDate,
079: String postLastEditIP, int postFormatOption,
080: int postOption, int postStatus, String postIcon)
081: throws ObjectNotFoundException, DatabaseException,
082: ForeignKeyNotFoundException;
083:
084: public void update(int postID, // primary key
085: int parentPostID, int forumID, int threadID)
086: throws ObjectNotFoundException, DatabaseException,
087: ForeignKeyNotFoundException;
088:
089: public void updateAttachCount(int postID, // primary key
090: int postAttachCount) throws ObjectNotFoundException,
091: DatabaseException;
092:
093: public void updateStatus(int postID, // primary key
094: int postStatus) throws ObjectNotFoundException,
095: DatabaseException;
096:
097: public void update_ForumID_inThread(int threadID, int forumID)
098: throws DatabaseException, ForeignKeyNotFoundException;
099:
100: public void updateParentPostID(int oldParentPostID,
101: int newParentPostID) throws ObjectNotFoundException,
102: DatabaseException;
103:
104: public void increaseEditCount(int postID) throws DatabaseException,
105: ObjectNotFoundException;
106:
107: public PostBean getPost(int postID) throws ObjectNotFoundException,
108: DatabaseException;
109:
110: /**
111: * This method is used the get the first post of thread for moderation
112: *
113: * @param threadID
114: * @return
115: * @throws ObjectNotFoundException
116: * @throws DatabaseException
117: */
118: public PostBean getFirstPost_inThread(int threadID)
119: throws ObjectNotFoundException, DatabaseException;
120:
121: public Collection getEnablePosts_inThread_limit(int threadID,
122: int offset, int rowsToReturn)
123: throws IllegalArgumentException, DatabaseException;
124:
125: public Collection getDisablePosts_inThread_limit(int threadID,
126: int offset, int rowsToReturn)
127: throws IllegalArgumentException, DatabaseException;
128:
129: public int getNumberOfEnablePosts_inThread(int threadID)
130: throws DatabaseException;
131:
132: public int getNumberOfDisablePosts_inThread(int threadID)
133: throws DatabaseException;
134:
135: public int getNumberOfPosts_inMember(int memberID)
136: throws DatabaseException;
137:
138: /**
139: * This method could be used to update the statistics of the forum
140: *
141: * @param forumID int
142: * @throws DatabaseException
143: * @return int
144: */
145: public int getNumberOfEnablePosts_inForum(int forumID)
146: throws DatabaseException;
147:
148: public int getNumberOfDisablePosts_inForum(int forumID)
149: throws DatabaseException;
150:
151: /**
152: * This method could be used to check the total posts when compare with number of docs in lucene
153: *
154: * @throws DatabaseException
155: * @return int
156: */
157: public int getNumberOfPosts() throws DatabaseException;
158:
159: /**
160: * This method could be used to get all post when rebuild lucene search index
161: *
162: * @throws DatabaseException
163: * @return Collection
164: */
165: public Collection getPosts() throws DatabaseException;
166:
167: public int getMaxPostID() throws DatabaseException;
168:
169: /**
170: * This method could be used to get all post when rebuild lucene search index
171: *
172: * @throws DatabaseException
173: * @return Collection
174: */
175: public Collection getPosts_fromIDRange(int fromID, int toID)
176: throws IllegalArgumentException, DatabaseException;
177:
178: /**
179: * This method could be used to get latest post in a thread to update
180: * thread statistics. It also could be used to get the latest posts
181: * when replying to a post
182: *
183: * @param threadID int
184: * @param rowsToReturn int
185: * @throws IllegalArgumentException
186: * @throws DatabaseException
187: * @return Collection
188: */
189: public Collection getLastEnablePosts_inThread_limit(int threadID,
190: int rowsToReturn) throws IllegalArgumentException,
191: DatabaseException;
192:
193: /**
194: * This method could be used to update forum statistics by getting one
195: * last post in a forum
196: *
197: * @param forumID int
198: * @param rowsToReturn int
199: * @throws IllegalArgumentException
200: * @throws DatabaseException
201: * @return Collection
202: */
203: public Collection getLastEnablePosts_inForum_limit(int forumID,
204: int rowsToReturn) throws IllegalArgumentException,
205: DatabaseException;
206:
207: public Collection getMostActiveMembers(Timestamp since,
208: int rowsToReturn) throws DatabaseException;
209:
210: public Collection getMostActiveThreads(Timestamp since,
211: int rowsToReturn) throws DatabaseException;
212:
213: }
|