简而言之,FourmMessage就是论坛的贴子,在这里,主要是贴子的内容,当然,再贴子的内容显示的时候,可能要加上一些Filter显然,这是一个设计模式中的Decortor模式。在这里,要说明的一个技巧就是,在一个属性不属于基本接口的时候,可以加一个附加属性Property,这样就可以在不改变接口的情况下,显示出附加的信息。
//////////////////////////////////////////////////////////////////////////////////////////////////////
CREATE TABLE YazdMessage (
messageID INTEGER NOT NULL,
threadID INTEGER DEFAULT -1,
subject VARCHAR2(255) NULL,
userID INTEGER NOT NULL,
body LONG VARCHAR NULL,
modifiedDate VARCHAR2(15) NOT NULL,
creationDate VARCHAR2(15) NOT NULL,
approved INTEGER NOT NULL
);
CREATE TABLE YazdMessageProp (----看,这就是附加的Property!
messageID INTEGER NOT NULL,
name VARCHAR2(50) NOT NULL,
propValue VARCHAR2(255) NOT NULL
);
///////////////////////////////////////////////////////////////////////////////////////////////////////
public int getID();返回贴子的ID即数据表格中的messageID
public Date getCreationDate();返回贴子的建立日期
public void setCreationDate(Date creationDate) throws UnauthorizedException;重新设置贴子的建立日期,不推荐的做法,只有ADIM可以
public Date getModifiedDate();返回修改日期,只要贴子中的某个属性改变,此ModifiedDate就会立即发生改变
public void setModifiedDate(Date modifiedDate) throws UnauthorizedException;重新设置贴子的修改日期,只有ADIM可以
public String getSubject();返回贴子的标题,即subject,当然在返回这个之前,必须要通过Filter
public String getUnfilteredSubject();正如其名,返回一个干净的标题
public void setSubject(String subject) throws UnauthorizedException;重新设置标题,只有ADIM可以,这就与Filter无关啦
public String getBody();返回贴子的内容,显然与subject一样,必须要通过Filter
public String getUnfilteredBody();同public String getUnfilteredSubject();一样的效果
public void setBody(String body) throws UnauthorizedException;同public void setSubject(String subject)
public User getUser();返回本贴子的作者,即通过userID来捕获,如果userID为-1,则可断定此为匿名作者
public String getProperty(String name);这就是附加Property的事情了,此方法返回具有name的Value,同样此也必须通过Filter<HTML Filter>
public String getUnfilteredProperty(String name);返回一个不带任何Filter的具有name的Value
public void setProperty(String name, String value);增加一个附加的property,把名字设为name,其值为value
public Iterator propertyNames();返回一个所有附加property的遍历
public boolean isAnonymous();指出贴子的作者是否是一个Anonymous
public ForumThread getForumThread();返回这个贴子的Thread,其实是根据threadID,来得到FourmThread
public boolean hasPermission(int type);几乎大多数接口都要实现的方法,就是确定是不是具有某个权限