package cn.alphabets.light.model;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* Mod的父类,处理共通字段
* Created by luohao on 14/10/17.
*/
public class BasicModel implements Serializable {
protected String _id;
protected String valid;
protected Date createAt;
protected String createBy;
protected Date updateAt;
protected String updateBy;
public String get_id() {
return _id;
}
public void set_id(String _id) {
this._id = _id;
}
public String getValid() {
return valid;
}
public void setValid(String valid) {
this.valid = valid;
}
public Date getCreateAt() {
return createAt;
}
public void setCreateAt(Date createAt) {
this.createAt = createAt;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Date getUpdateAt() {
return updateAt;
}
public void setUpdateAt(Date updateAt) {
this.updateAt = updateAt;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public JSONObject toJSON() {
return toJSON(this);
}
public static JSONObject toJSON(BasicModel model) {
try {
return new JSONObject(new Gson().toJson(model));
} catch (JSONException e) {
throw new RuntimeException("Converting object failed.");
}
}
public static BasicModel parse(JSONObject json, TypeToken typeToken) {
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new DateConverter()).create();
return gson.fromJson(json.toString(), typeToken.getType());
}
public static TypeToken getTypeToken() {
return new TypeToken<BasicModel>() {
};
}
public static TypeToken getListTypeToken() {
return new TypeToken<List<BasicModel>>() {
};
}
}