package com.ourlinc.helloworld.model;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Date;
import javax.annotation.Resource;
import com.ourlinc.helloworld.service.impl.ActivityPodi;
import com.ourlinc.helloworld.util.WebUtils;
import com.ourlinc.omni.persistence.PersistenceAbstract;
import com.ourlinc.omni.persistence.Persister;
import com.ourlinc.swift.exception.UnsupportedException;
import com.ourlinc.swift.util.UniteId;
/**
* 业务对象评论类
*
* @author lipeiying
*
*/
public class Comment extends PersistenceAbstract<ActivityPodi> {
public final static int AVAILABLE = 0; // 可用状态
public final static int DELETE = 1; // 删除状态
// 联合ID
@Resource(type = String.class)
private UniteId m_Id = UniteId.nil;
@Resource
private String m_UserId; // 评论人id
@Resource
private String m_ActivityId; // 活动id
@Resource
private Date m_Time = new Date(); // 评论发表时间
@Resource
private String m_Content; // 评论内容
@Resource
private int m_Status = AVAILABLE; // 评论状态,默认可用
/**
* 无参构造函数
*
* @param podi
*/
public Comment(ActivityPodi podi) {
super(podi);
}
/**
* 构造函数
*
* @param podi
* @param user
* @param content
*/
public Comment(ActivityPodi podi, Activity act, User user, String content) {
super(podi);
m_UserId = user.getId();
m_ActivityId = act.getId();
m_Content = content;
markUpdate();
}
/**
* 删除评论
*/
public void delete() {
m_Status = DELETE;
markUpdate();
}
// get方法开始
public String getId() {
return m_Id.toString();
}
public String getPersistenceId() {
return getId();
}
public String getUserId() {
return m_UserId;
}
public String getUsername() {
return getPodi().getUserById(m_UserId).getUsername();
}
public Date getTime() {
return m_Time;
}
public String getURLEncodeForId() {
String result = "";
try {
result = URLEncoder.encode(getId(), "utf-8");
} catch (UnsupportedEncodingException e) {
}
return result;
}
/**
* 返回发表时间的字符串表示
*
* @return
*/
public String getTimeString() {
return WebUtils.dateAndTimeFormatToStr(m_Time);
}
public String getContent() {
return m_Content;
}
public String getActivityId() {
return m_ActivityId;
}
public int getStatus() {
return m_Status;
}
// get方法结束
protected void genUniteId() {
if (UniteId.nil != m_Id) {
throw new UnsupportedException("不能重复初始化ID:" + m_Id);
}
m_Id = UniteId.valueOf(getPodi().getPersister(getClass()).getNewId());
setPersistenceState(STATE_REINDEX | STATE_NEW);
}
protected void initPersistenceId(Persister<?> arg0) {
genUniteId();
}
}