FocusColumn.java 3.27 KB
/**@author Sherlock_yb
 * Created time:2014-2-22
 */
package nlp.whu.model;

import java.util.Comparator;
import java.util.Date;

/**@description: 栏目下的话题
 */
public class FocusColumn {
	/**
	 * 数据库中,各个String字段最大长度限制(字符个数)
	 */
	public static final int MAX_NAME_LENGTH = 100;
	public static final int MAX_KEYWORD_LENGTH = 40;
	private int id;
    private String name;
    private Date produceDate;
    private Date extractDate;
    /**
     * 为1表示待删除;为0表示有效话题
     */
    private int deleteFlag;
    /**
	 * deleteFlag两种取值标志
	 */
	public static final int DELETE_FLAG_ACTIVE = 0;
	public static final int DELETE_FLAG_DELETE = 1;
	/**
	 * 用户Id
	 */
	private int userId;
	/**
	 * 栏目Id(专题类型)
	 */
    private int subjectTypeId;
    /**
     * 相关帖子Id(主信息)
     */
    private String relateMainPageId;
    /**
     * 话题相关帖子数
     */
    private int relatePageNum;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
    	if(name != null && name.length() > MAX_NAME_LENGTH){
    		name = name.substring(0, MAX_NAME_LENGTH);
    	}
        this.name = name;
    }
    
    public void setProduceDate(Date produceDate) {
		this.produceDate = produceDate;
	}

	public Date getProduceDate() {
		return produceDate;
	}

	public void setExtractDate(Date extractDate) {
		this.extractDate = extractDate;
	}

	public Date getExtractDate() {
		return extractDate;
	}

    public int getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(int deleteFlag) {
        this.deleteFlag = deleteFlag;
    }

	public int getUserId() {
		return userId;
	}

	public void setUserId(int userId) {
		this.userId = userId;
	}

	public int getSubjectTypeId() {
		return subjectTypeId;
	}

	public void setSubjectTypeId(int subjectTypeId) {
		this.subjectTypeId = subjectTypeId;
	}

	public String getRelateMainPageId() {
		return relateMainPageId;
	}

	public void setRelateMainPageId(String relateMainPageId) {
		this.relateMainPageId = relateMainPageId;
	}

	public int getRelatePageNum() {
		return relatePageNum;
	}

	public void setRelatePageNum(int relatePageNum) {
		this.relatePageNum = relatePageNum;
	}
	public static class FocusProduceDateComparator implements Comparator<FocusColumn>{
		@Override
		public int compare(FocusColumn o1, FocusColumn o2) {
			Date pd1 = o1.getProduceDate();
			Date pd2 = o2.getProduceDate();
			if(pd2 == null){
				if(pd1 == null){
					return 0;
				}else{
					return -1;
				}
			}else{
				if(pd1 == null){
					return 1;
				}else{
					long t1 = pd1.getTime();
					long t2 = pd2.getTime();
					return t2 == t1 ? 0 : (t2 > t1 ? 1:-1);
				}
			}
		}
	}
	public static class FocusPageNumComparator implements Comparator<FocusColumn>{
		@Override
		public int compare(FocusColumn o1, FocusColumn o2) {
			int count1 = o1.getRelatePageNum();
			int count2 = o2.getRelatePageNum();
			return count2 == count1 ? 0 : (count2 > count1 ? 1:-1);
		}
	}
}