package com.yaoyumeng.v2ex.model;
import android.os.Parcel;
import android.os.Parcelable;
import com.yaoyumeng.v2ex.utils.ContentUtils;
import org.json.JSONException;
import org.json.JSONObject;
public class TopicModel extends V2EXModel implements Parcelable{
private static final long serialVersionUID = 2015050105L;
public int id;
public String title;
public String url;
public String content;
public String contentRendered;
public int replies;
public MemberModel member;
public NodeModel node;
public long created;
public long lastModified;
public long lastTouched;
public void parse(JSONObject jsonObject) throws JSONException {
id = jsonObject.getInt("id");
title = jsonObject.getString("title");
url = jsonObject.getString("url");
content = jsonObject.getString("content");
contentRendered = ContentUtils.formatContent(jsonObject.getString("content_rendered"));
replies = jsonObject.getInt("replies");
member = new MemberModel();
member.parse(jsonObject.getJSONObject("member"));
node = new NodeModel();
node.parse(jsonObject.getJSONObject("node"));
created = jsonObject.getLong("created");
lastModified = jsonObject.getLong("last_modified");
lastTouched = jsonObject.getLong("last_touched");
}
public TopicModel(){}
private TopicModel(Parcel in){
int[] ints= new int[2];
in.readIntArray(ints);
id = ints[0];
replies = ints[1];
String[] strings = new String[4];
in.readStringArray(strings);
title = strings[0];
url = strings[1];
content = strings[2];
contentRendered = strings[3];
long[] longs = new long[3];
in.readLongArray(longs);
created = longs[0];
lastModified = longs[1];
lastTouched = longs[2];
member = (MemberModel) in.readValue(MemberModel.class.getClassLoader());
node = (NodeModel) in.readValue(NodeModel.class.getClassLoader());
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeIntArray(new int[]{
id,
replies
});
dest.writeStringArray(new String[]{
title,
url,
content,
contentRendered
});
dest.writeLongArray(new long[]{
created,
lastModified,
lastTouched
});
dest.writeValue(member);
dest.writeValue(node);
}
public static final Creator<TopicModel> CREATOR = new Creator<TopicModel>() {
@Override
public TopicModel createFromParcel(Parcel source) {
return new TopicModel(source);
}
@Override
public TopicModel[] newArray(int size) {
return new TopicModel[size];
}
};
}