package com.javaxyq.model;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* ����ʵ����
* @author dewitt
* @date 2009-11-23 create
*/
public class Task implements Serializable{
private static final long serialVersionUID = 2745458583606730756L;
private String sender;
private String receiver;
private Date createDate;
private String type;
private String subtype;
private String id;
private int exp;
private int money;
/** �����Ƿ������ */
private boolean finished;
/** �Զ���������Ӧ�����������ʱ�� */
private boolean autoSpark;
private Map params;
public Task() {
params = new HashMap();
createDate = new Date();
}
public Task(String type,String subtype,String sender,String receiver) {
params = new HashMap();
createDate = new Date();
this.type = type;
this.subtype = subtype;
this.sender = sender;
this.receiver = receiver;
}
/**
* ����ij��������ֵ
* @param paramName
* @param value
*/
public void set(String paramName,Object value) {
params.put(paramName, value);
}
/**
* ����ij��������ֵ��ע�⣬��set��һ��
* @param paramName
* @param value
*/
public void add(String paramName,Object value) {
//params[paramName] += value;
Integer val = (Integer) params.get(paramName);
if(val == null) {
val = new Integer(0);
}
params.put(paramName, val + (Integer)value);
}
public void remove(String param) {
params.remove(param);
}
public Object get(String param) {
return params.get(param);
}
public int getInt(String name) {
Integer val = (Integer) this.params.get(name);
return val!=null?val.intValue():0;
}
public boolean getBool(String name) {
Boolean val = (Boolean) this.params.get(name);
return val!=null?val.booleanValue():false;
}
/**
* @return the autoSpark
*/
public boolean isAutoSpark() {
return autoSpark;
}
/**
* @return the finished
*/
public boolean isFinished() {
return finished;
}
/**
* @return the type
*/
public String getType() {
return type;
}
/**
* @return the subtype
*/
public String getSubtype() {
return subtype;
}
public String getSender() {
return sender;
}
public String getReceiver() {
return receiver;
}
public Date getCreateDate() {
return createDate;
}
public String getId() {
return id;
}
public int getExp() {
return exp;
}
public int getMoney() {
return money;
}
public Map getParams() {
return params;
}
public void setFinished(boolean finished) {
this.finished = finished;
}
public void setAutoSpark(boolean autoSpark) {
this.autoSpark = autoSpark;
}
/**
* set value of exp
* @param exp
*/
public void setExp(int exp) {
this.exp = exp;
}
public void setMoney(int money) {
this.money = money;
}
protected void writeObject(ObjectOutputStream s)
throws IOException
{
s.writeBoolean(autoSpark);
s.writeObject(createDate);
s.writeInt(getExp());
s.writeBoolean(finished);
s.writeUTF(id);
s.writeInt(money);
//params
s.writeObject(params);
s.writeUTF(receiver);
s.writeUTF(sender);
s.writeUTF(subtype);
s.writeUTF(type);
}
/**
* Reconstitute this object from a stream (i.e., deserialize it).
*/
protected void readObject(ObjectInputStream s)
throws IOException, ClassNotFoundException
{
autoSpark=s.readBoolean();
createDate=(Date) s.readObject();
setExp(s.readInt());
finished=s.readBoolean();
id=s.readUTF();
money=s.readInt();
//params
params=(Map) s.readObject();
receiver=s.readUTF();
sender=s.readUTF();
subtype=s.readUTF();
type=s.readUTF();
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("Task [autoSpark=");
builder.append(autoSpark);
builder.append(", createDate=");
builder.append(createDate);
builder.append(", exp=");
builder.append(getExp());
builder.append(", finished=");
builder.append(finished);
builder.append(", id=");
builder.append(id);
builder.append(", money=");
builder.append(money);
builder.append(", params=");
builder.append(params);
builder.append(", receiver=");
builder.append(receiver);
builder.append(", sender=");
builder.append(sender);
builder.append(", subtype=");
builder.append(subtype);
builder.append(", type=");
builder.append(type);
builder.append("]");
return builder.toString();
}
}