Package com.ourlinc.conference.book

Source Code of com.ourlinc.conference.book.Book

package com.ourlinc.conference.book;

import java.util.Date;
import javax.annotation.Resource;
import com.ourlinc.conference.DateUtil;
import com.ourlinc.conference.book.impl.BookPodi;
import com.ourlinc.omni.persistence.PersistenceAbstract;
import com.ourlinc.omni.persistence.Persister;
import com.ourlinc.swift.exception.UnsupportedException;
import com.ourlinc.swift.util.NameItem;
import com.ourlinc.swift.util.UniteId;
/**
* 预定信息业务对象
* @author pengchengji
*
*/
public class Book extends PersistenceAbstract<BookPodi> implements Comparable<Book>{

  //联合ID
  @Resource(type=String.class)
  private UniteId m_Id = UniteId.nil;
 
  //预定日期
  @Resource
  private Date m_Date ;
 
  //起始时间点
  @Resource
  private int m_BeginTime ;
 
  //持续时间点
  @Resource
  private int m_ContinueTime ;
 
  //部门
  @Resource
  private String m_Department ;
 
  //预订人
  @Resource
  private String m_Linkman ;
 
  //会议标题
  @Resource
  private String m_Title ;
 
  //预定信息内容
  @Resource
  private String m_Content ;
 
  //预定状态
  @Resource
  private int m_Status;
 
  //用NameItem来表示预定状态
  public static final NameItem STATUS_ENABLE = new NameItem("正常状态",0x0001);
  public static final NameItem STATUS_DISABLE = new NameItem("失效状态",0x0002);
  public static final NameItem[] ALLSTATUS = {STATUS_ENABLE,STATUS_DISABLE};
 
  //GET SET方法开始
  public UniteId getId() {
    return m_Id;
  }

  public void setId(UniteId id) {
    m_Id = id;
  }
 
  public Date getDate (){
    return m_Date ;
  }
 
  public void setDate (Date date){
    m_Date = date ;
  }
 
  public int getBeginTime (){
    return m_BeginTime ;
  }
 
  public void setBeginTime (int beginTime){
    m_BeginTime = beginTime ;
  }

  public int getContinueTime (){
    return m_ContinueTime ;
  }
 
  public int getEndTime (){
    return m_BeginTime + m_ContinueTime ;
  }
 
  public String getStrDate (){
    return DateUtil.dateFormatToStr(m_Date);
  }
 
  public String getStrBeginTime (){
    if(0 == (m_BeginTime%60/10)){
      return (m_BeginTime/60==0?"00":m_BeginTime/60) + ":" + (m_BeginTime%60==0?"00":"0"+m_BeginTime%60);
    }else {
      return (m_BeginTime/60==0?"00":m_BeginTime/60) + ":" + (m_BeginTime%60==0?"00":m_BeginTime%60);
    }
  }
 
  public String getStrEndTime (){
    if(0 == (getEndTime()%60/10)){
      return (getEndTime()/60==0?"00":getEndTime()/60) + ":" + (getEndTime()%60==0?"00":"0"+getEndTime()%60);
    }else {
      return (getEndTime()/60==0?"00":getEndTime()/60) + ":" + (getEndTime()%60==0?"00":getEndTime()%60);
    }
  }
 
  public void setContinueTime (int continueTime){
    m_ContinueTime = continueTime ;
  }

  public String getDepartment() {
    return m_Department;
  }

  public void setDepartment(String department) {
    m_Department = department;
  }
 
  public String getLinkman() {
    return m_Linkman;
  }

  public void setLinkman(String linkman) {
    m_Linkman = linkman;
  }
 
  public void setTitle(String title) {
    this.m_Title = title;
  }

  public String getTitle() {
    return m_Title;
  }
 
  public void setContent(String content) {
    this.m_Content = content;
  }

  public String getContent() {
    return m_Content;
  }
 
  public int getStatus() {
    return m_Status;
  }
  //GET SET方法结束
 
  /**
   * 取消预定
   */
  public void cancle(){
    m_Status = STATUS_DISABLE.getId();
    markUpdate();
  }
 
  /**
   * 激活预定
   */
  public void activate(){
    m_Status = STATUS_ENABLE.getId();
    markUpdate();
  }
 
  /**
   * 构造函数
   * @param podi
   */
  public Book(BookPodi podi) {
    super(podi);
  }
 
  /**
   * Book构造函数
   * @param podi
   * @param date 预定日期
   * @param beginTime 开始时间
   * @param continueTime 持续时间
   * @param status 初始化预定状态为正常状态
   */
  public Book(BookPodi podi, Date date, int beginTime, int continueTime, String department,String linkman, int status) {
    super(podi);
    m_Date = date ;
    m_BeginTime = beginTime ;
    m_ContinueTime = continueTime ;
    m_Department = department ;
    m_Linkman = linkman ;
    m_Status = status ;
    genUniteId();
    markUpdate();
  }
 
  /**
   * 对标题和内容进行初始化
   * @param title
   * @param content
   */
  public void init (String title, String content){
    m_Title = title ;
    m_Content = content ;
    markUpdate();
  }
 
  @Override
  protected void initPersistenceId(Persister<?> arg0) {
    genUniteId();
  }
 
  // 产生新的ID(用户ID作为前缀生成ID)
  protected void genUniteId() {
    if (UniteId.nil != m_Id){
      throw new UnsupportedException("不能重复初始化ID:" + m_Id);
    }
    //id是需要自己维护的,这个方法相当于数据库的id自增功能
    m_Id = UniteId.valueOf(getPodi().getPersister(getClass()).getNewId());
    // 标示要重做索引的状态及新创建(框架默认是会对id进行索引的)
    setPersistenceState(STATE_REINDEX | STATE_NEW);
  }

  public String getPersistenceId() {
    return m_Id.toString();
  }

  /**
   * 制定List<Book>的排序规则
   * @param book 需要比较的预定
   */
  public int compareTo(Book book) {
   
    if (m_Date.equals(book.m_Date)){
      if (this.m_BeginTime > book.m_BeginTime){
        return 1 ;
      }else if (this.m_BeginTime < book.m_BeginTime){
        return -1 ;
      }else {
        return this.m_Title.compareTo(book.m_Title);
      }
    }else if (m_Date.after(book.m_Date)){
      return 1;
    }else{
      return -1 ;
    }
  }
 
}
TOP

Related Classes of com.ourlinc.conference.book.Book

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.