在建立一个Thread的时候,必须先建立一个RootMessage,这样,所有的其它的Message都是RootMessage的Child。
为什么要建立一个RootMessage呢,我认为是为了让处理上的统一。因为你Add一条新的Message的时候,必须指明
它的ParentMessagse如下: public void addMessage(ForumMessage parentMessage, ForumMessage newMessage);
那么,所有的原贴,或者跟贴就可以统一的处理了。在这里有个问题要说明一下,CreateMessage(User us)这个方法
并没有在Thread中来实现,因为,建立一个Thread的时候,必须要用一个RootMessage,所以,其就不可以在Thread中
来现实这个东东,不过,在Thread中当然可以来实现addMessage这样的操作,因为显然message已经建立。
////////////////////////////////////////////////////////////////////////////////////////////////////////
CREATE TABLE YazdThread (
threadID INTEGER NOT NULL,
forumID INTEGER NOT NULL,
rootMessageID INTEGER NOT NULL,
creationDate VARCHAR2(15) NOT NULL,
modifiedDate VARCHAR2(15) NOT NULL,
approved INTEGER NOT NULL
);
/////////////////////////////////////////////////////////////////////////////////////////////////////////
public int getID();获得Thread的ID即数据表中的threadID
public String getName();获得Thread的名称在这里,返回的是rootMessage的标题(return this.getRootMessage.getSubject())
public Date getCreationDate();获得Thread的建立时间。即数据表中的creationDate
public void setCreationDate(Date creationDate) throws UnauthorizedException;设定Thread的建立时间,一般不能开放,只有ADIM才能够设置此项
public Date getModifiedDate();返回Thread最后的更改时间,也就是最后一个贴子的发表时间
public void setModifiedDate(Date modifiedDate) throws UnauthorizedException;修改更改时间,同样只有ADIM才能更改
public Forum getForum();返回其所属的论坛
public ForumMessage getMessage(int messageID)返回属于此Thread的具有ID号为messageID的贴子
throws ForumMessageNotFoundException;
public ForumMessage getRootMessage();返回rootMessage,这样就可以浏览其中所有的message
public void addMessage(ForumMessage parentMessage, ForumMessage newMessage);增加newMessage到parentMessage,如果parentMessage是rootMessage那么是新贴,否则是跟贴。
public void deleteMessage(ForumMessage message)删除message
throws UnauthorizedException;
public void moveMessage(ForumMessage message, ForumThread newThread,将message移到newThread中的parentMessage下。
ForumMessage parentMessage) throws UnauthorizedException,
IllegalArgumentException;
public TreeWalker treeWalker();建立一个分层目录的浏览结构 针对message
public Iterator messages();建立一个线性的浏览结构,针对message
public Iterator messages(int startIndex, int numResults);建立一个线性浏览结构,而且是从开头是startIndex数目是numResults的贴子。