alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

/*
 * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/db/ThreadBean.java,v 1.15 2005/01/18 11:52:19 minhnn Exp $
 * $Author: minhnn $
 * $Revision: 1.15 $
 * $Date: 2005/01/18 11:52:19 $
 *
 * ====================================================================
 *
 * Copyright (C) 2002-2005 by MyVietnam.net
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or any later version.
 *
 * All copyright notices regarding mvnForum MUST remain intact
 * in the scripts and in the outputted HTML.
 * The "powered by" text/logo with a link back to
 * http://www.mvnForum.com and http://www.MyVietnam.net in the
 * footer of the pages MUST remain visible when the pages
 * are viewed on the internet or intranet.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * Support can be obtained from support forums at:
 * http://www.mvnForum.com/mvnforum/index
 *
 * Correspondence and Marketing Questions can be sent to:
 * info@MyVietnam.net
 *
 * @author: Minh Nguyen  minhnn@MyVietnam.net
 * @author: Mai  Nguyen  mai.nh@MyVietnam.net
 */
package com.mvnforum.db;

import java.sql.Timestamp;
import java.util.Collection;
import java.util.Iterator;

import net.myvietnam.mvncore.util.StringUtil;

/*
 * Included columns: ThreadID, ForumID, MemberName, LastPostMemberName, ThreadTopic,
 *                   ThreadBody, ThreadVoteCount, ThreadVoteTotalStars, ThreadCreationDate, ThreadLastPostDate,
 *                   ThreadType, ThreadOption, ThreadStatus, ThreadHasPoll, ThreadViewCount,
 *                   ThreadReplyCount, ThreadIcon, ThreadDuration
 * Excluded columns:
 */
public class ThreadBean {
    /*************************************************************************
     * NOTE: below constants MUST NOT be changed IN ALL CASES,
     *       or it will break the compatibility
     *************************************************************************/
    /**
     * The default value mean thread is enable and normal
     */
    public final static int THREAD_STATUS_DEFAULT  = 0;

    /**
     * The disable thread is invisible for normal user and visible to moderator
     */
    public final static int THREAD_STATUS_DISABLED = 1;

    /**
     * No changes (edit, attach, reply) could be maded, moderator
     * have to change this status before making any changes is possible
     */
    public final static int THREAD_STATUS_LOCKED   = 2;

    /**
     * Noone can reply, but moderator can change it.
     */
    public final static int THREAD_STATUS_CLOSED   = 3;

    /**
     * Thread type is traditional
     */
    public final static int THREAD_TYPE_DEFAULT             = 0;

    public final static int THREAD_TYPE_STICKY              = 1;

    public final static int THREAD_TYPE_FORUM_ANNOUNCEMENT  = 2;

    public final static int THREAD_TYPE_GLOBAL_ANNOUNCEMENT = 3;

    private int threadID;
    private int forumID;
    private String memberName;
    private String lastPostMemberName;
    private String threadTopic;
    private String threadBody;
    private int threadVoteCount;
    private int threadVoteTotalStars;
    private Timestamp threadCreationDate;
    private Timestamp threadLastPostDate;
    private int threadType;
    private int threadOption;
    private int threadStatus;
    private int threadHasPoll;
    private int threadViewCount;
    private int threadReplyCount;
    private String threadIcon;
    private int threadDuration;
    private int threadAttachCount;

    public int getThreadID() {
        return threadID;
    }
    public void setThreadID(int threadID) {
        this.threadID = threadID;
    }

    public int getForumID() {
        return forumID;
    }
    public void setForumID(int forumID) {
        this.forumID = forumID;
    }

    public String getMemberName() {
        return memberName;
    }
    public void setMemberName(String memberName) {
        this.memberName = memberName;
    }

    public String getLastPostMemberName() {
        return lastPostMemberName;
    }
    public void setLastPostMemberName(String lastPostMemberName) {
        this.lastPostMemberName = lastPostMemberName;
    }

    public String getThreadTopic() {
        return threadTopic;
    }
    public void setThreadTopic(String threadTopic) {
        this.threadTopic = threadTopic;
    }

    public String getThreadBody() {
        return threadBody;
    }
    public void setThreadBody(String threadBody) {
        this.threadBody = threadBody;
    }

    public int getThreadVoteCount() {
        return threadVoteCount;
    }
    public void setThreadVoteCount(int threadVoteCount) {
        this.threadVoteCount = threadVoteCount;
    }

    public int getThreadVoteTotalStars() {
        return threadVoteTotalStars;
    }
    public void setThreadVoteTotalStars(int threadVoteTotalStars) {
        this.threadVoteTotalStars = threadVoteTotalStars;
    }

    public Timestamp getThreadCreationDate() {
        return threadCreationDate;
    }
    public void setThreadCreationDate(Timestamp threadCreationDate) {
        this.threadCreationDate = threadCreationDate;
    }

    public Timestamp getThreadLastPostDate() {
        return threadLastPostDate;
    }
    public void setThreadLastPostDate(Timestamp threadLastPostDate) {
        this.threadLastPostDate = threadLastPostDate;
    }

    public int getThreadType() {
        return threadType;
    }
    public void setThreadType(int threadType) {
        this.threadType = threadType;
    }

    public int getThreadOption() {
        return threadOption;
    }
    public void setThreadOption(int threadOption) {
        this.threadOption = threadOption;
    }

    public int getThreadStatus() {
        return threadStatus;
    }
    public void setThreadStatus(int threadStatus) {
        this.threadStatus = threadStatus;
    }

    public int getThreadHasPoll() {
        return threadHasPoll;
    }
    public void setThreadHasPoll(int threadHasPoll) {
        this.threadHasPoll = threadHasPoll;
    }

    public int getThreadViewCount() {
        return threadViewCount;
    }
    public void setThreadViewCount(int threadViewCount) {
        this.threadViewCount = threadViewCount;
    }

    public int getThreadReplyCount() {
        return threadReplyCount;
    }
    public void setThreadReplyCount(int threadReplyCount) {
        this.threadReplyCount = threadReplyCount;
    }

    public String getThreadIcon() {
        return threadIcon;
    }
    public void setThreadIcon(String threadIcon) {
        this.threadIcon = StringUtil.getEmptyStringIfNull(threadIcon);
    }

    public int getThreadDuration() {
        return threadDuration;
    }
    public void setThreadDuration(int threadDuration) {
        this.threadDuration = threadDuration;
    }

    public int getThreadAttachCount() {
        return this.threadAttachCount;
    }
    public void setThreadAttachCount(int attachCount) {
        this.threadAttachCount = attachCount;
    }

    public String getXMLTag() {
        StringBuffer xml = new StringBuffer(1024);
        xml.append("<Thread");
        xml.append(" threadID=\"").append(String.valueOf(threadID)).append("\"");
        xml.append(" forumID=\"").append(String.valueOf(forumID)).append("\"");
        xml.append(" memberName=\"").append(String.valueOf(memberName)).append("\"");
        xml.append(" lastPostMemberName=\"").append(String.valueOf(lastPostMemberName)).append("\"");
        xml.append(" threadTopic=\"").append(String.valueOf(threadTopic)).append("\"");
        xml.append(" threadBody=\"").append(String.valueOf(threadBody)).append("\"");
        xml.append(" threadVoteCount=\"").append(String.valueOf(threadVoteCount)).append("\"");
        xml.append(" threadVoteTotalStars=\"").append(String.valueOf(threadVoteTotalStars)).append("\"");
        xml.append(" threadCreationDate=\"").append(String.valueOf(threadCreationDate)).append("\"");
        xml.append(" threadLastPostDate=\"").append(String.valueOf(threadLastPostDate)).append("\"");
        xml.append(" threadType=\"").append(String.valueOf(threadType)).append("\"");
        xml.append(" threadOption=\"").append(String.valueOf(threadOption)).append("\"");
        xml.append(" threadStatus=\"").append(String.valueOf(threadStatus)).append("\"");
        xml.append(" threadHasPoll=\"").append(String.valueOf(threadHasPoll)).append("\"");
        xml.append(" threadViewCount=\"").append(String.valueOf(threadViewCount)).append("\"");
        xml.append(" threadReplyCount=\"").append(String.valueOf(threadReplyCount)).append("\"");
        xml.append(" threadIcon=\"").append(String.valueOf(threadIcon)).append("\"");
        xml.append(" threadDuration=\"").append(String.valueOf(threadDuration)).append("\"");
        xml.append(" threadAttachCount=\"").append(String.valueOf(threadAttachCount)).append("\"");
        xml.append(">");
        return xml.toString();
    }

    public String getXML() {
        StringBuffer xml = new StringBuffer(1024);
        xml.append("<ThreadSection>\n");
        xml.append("  <Rows>\n");
        xml.append("    <Row>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadID\n");
        xml.append("        <Value>").append(String.valueOf(threadID)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ForumID\n");
        xml.append("        <Value>").append(String.valueOf(forumID)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>MemberName\n");
        xml.append("        <Value>").append(String.valueOf(memberName)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>LastPostMemberName\n");
        xml.append("        <Value>").append(String.valueOf(lastPostMemberName)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadTopic\n");
        xml.append("        <Value>").append(String.valueOf(threadTopic)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadBody\n");
        xml.append("        <Value>").append(String.valueOf(threadBody)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadVoteCount\n");
        xml.append("        <Value>").append(String.valueOf(threadVoteCount)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadVoteTotalStars\n");
        xml.append("        <Value>").append(String.valueOf(threadVoteTotalStars)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadCreationDate\n");
        xml.append("        <Value>").append(String.valueOf(threadCreationDate)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadLastPostDate\n");
        xml.append("        <Value>").append(String.valueOf(threadLastPostDate)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadType\n");
        xml.append("        <Value>").append(String.valueOf(threadType)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadOption\n");
        xml.append("        <Value>").append(String.valueOf(threadOption)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadStatus\n");
        xml.append("        <Value>").append(String.valueOf(threadStatus)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadHasPoll\n");
        xml.append("        <Value>").append(String.valueOf(threadHasPoll)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadViewCount\n");
        xml.append("        <Value>").append(String.valueOf(threadViewCount)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadReplyCount\n");
        xml.append("        <Value>").append(String.valueOf(threadReplyCount)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadIcon\n");
        xml.append("        <Value>").append(String.valueOf(threadIcon)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadDuration\n");
        xml.append("        <Value>").append(String.valueOf(threadDuration)).append("\n");
        xml.append("      </Column>\n");
        xml.append("      <Column>\n");
        xml.append("        <Name>ThreadAttachCount\n");
        xml.append("        <Value>").append(String.valueOf(threadAttachCount)).append("\n");
        xml.append("      </Column>\n");
        xml.append("    </Row>\n");
        xml.append("  </Rows>\n");
        xml.append("</ThreadSection>\n");
        return xml.toString();
    }

    public static String getXML(Collection objThreadBeans) {
        StringBuffer xml = new StringBuffer(1024);
        Iterator iterator = objThreadBeans.iterator();
        xml.append("<ThreadSection>\n");
        xml.append("  <Rows>\n");
        while (iterator.hasNext()) {
            ThreadBean objThreadBean = (ThreadBean)iterator.next();
            xml.append("    <Row>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadID\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadID)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ForumID\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.forumID)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>MemberName\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.memberName)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>LastPostMemberName\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.lastPostMemberName)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadTopic\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadTopic)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadBody\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadBody)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadVoteCount\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadVoteCount)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadVoteTotalStars\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadVoteTotalStars)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadCreationDate\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadCreationDate)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadLastPostDate\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadLastPostDate)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadType\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadType)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadOption\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadOption)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadStatus\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadStatus)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadHasPoll\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadHasPoll)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadViewCount\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadViewCount)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadReplyCount\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadReplyCount)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadIcon\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadIcon)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadDuration\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadDuration)).append("\n");
            xml.append("      </Column>\n");
            xml.append("      <Column>\n");
            xml.append("        <Name>ThreadAttachCount\n");
            xml.append("        <Value>").append(String.valueOf(objThreadBean.threadAttachCount)).append("\n");
            xml.append("      </Column>\n");
            xml.append("    </Row>\n");
        }//while
        xml.append("  </Rows>\n");
        xml.append("</ThreadSection>\n");
        return xml.toString();
    }

    /************************************************
     * Customized methods come below
     ************************************************/
    private int threadPendingPostCount;

    public int getThreadPendingPostCount() {
        return threadPendingPostCount;
    }
    public void setThreadPendingPostCount(int threadPendingPostCount) {
        this.threadPendingPostCount = threadPendingPostCount;
    }

    private Collection pendingPosts;

    public Collection getPendingPosts() {
        return pendingPosts;
    }
    public void setPendingPosts(Collection pendingPosts) {
        this.pendingPosts = pendingPosts;
    }

    static public void validateThreadStatus(int status) throws IllegalArgumentException {
        if ((status < 0) || (status > THREAD_STATUS_CLOSED)) {
            throw new IllegalArgumentException("Invalid ThreadStatus = " + status);
        }
    }

    static public void validateThreadType(int type) throws IllegalArgumentException {
        if ((type < 0) || (type > THREAD_TYPE_GLOBAL_ANNOUNCEMENT)) {
            throw new IllegalArgumentException("Invalid ThreadType = " + type);
        }
    }

    public void ensureStatusCanReply() throws IllegalArgumentException {
        if ( (getThreadStatus() == ThreadBean.THREAD_STATUS_LOCKED) ||
            (getThreadStatus() == ThreadBean.THREAD_STATUS_CLOSED)) {
            // or we can throw AssertionException. indicate that the gui MUST hide the option
            //@todo : localize me
            throw new IllegalStateException("Cannot reply when the thread is closed or locked.");
        }
    }

    public void ensureStatusCanEdit() throws IllegalArgumentException {
        if ( (getThreadStatus() == ThreadBean.THREAD_STATUS_LOCKED) ) {
            // or we can throw AssertionException. indicate that the gui MUST hide the option
            //@todo : localize me
            throw new IllegalStateException("Cannot edit post when the thread is locked.");
        }
    }

} //end of class ThreadBean
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.