package com.mcxiaoke.minicat.dao.model;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import com.mcxiaoke.minicat.controller.DataController;
import java.util.List;
/**
* @author mcxiaoke
* @version 1.5 2012.03.13
*/
public class StatusModel extends BaseModel {
public static final int TYPE_HOME = 101;
public static final int TYPE_MENTIONS = 102;
public static final int TYPE_PUBLIC = 103;
public static final int TYPE_USER = 104;
public static final int TYPE_SEARCH = 105;
public static final int TYPE_CONTEXT = 106;
public static final int TYPE_FAVORITES = 107;
public static final int TYPE_RETWEET = 108;
public static final int TYPE_PHOTO = 109;
public static final String TAG = StatusModel.class.getSimpleName();
public static final Parcelable.Creator<StatusModel> CREATOR = new Parcelable.Creator<StatusModel>() {
@Override
public StatusModel createFromParcel(Parcel source) {
return new StatusModel(source);
}
@Override
public StatusModel[] newArray(int size) {
return new StatusModel[size];
}
};
private String text; // html format text
private String simpleText; // plain text
private String source; // source
private String geo; // geo location info
private String media;// photo url or video url
private long userRawid; // user id
private String userId; //
private String userScreenName;
private String userProfileImageUrl;
private String inReplyToStatusId;
private String inReplyToUserId;
private String inReplyToScreenName;
private String rtStatusId;
private String rtUserId;
private String rtScreenName;
private String photoImageUrl;
private String photoThumbUrl;
private String photoLargeUrl;
private boolean truncated;
private boolean favorited;
private boolean retweeted;
private boolean self;
private boolean read;
private boolean thread;
private boolean photo;
private boolean special;
private List<String> urls;
private List<String> hashtags;
private List<String> mentions;
private UserModel user;
public StatusModel() {
}
public StatusModel(Parcel in) {
readBase(in);
text = in.readString();
simpleText = in.readString();
source = in.readString();
geo = in.readString();
media = in.readString();
userRawid = in.readLong();
userId = in.readString();
userScreenName = in.readString();
userProfileImageUrl = in.readString();
inReplyToStatusId = in.readString();
inReplyToUserId = in.readString();
inReplyToScreenName = in.readString();
rtStatusId = in.readString();
rtUserId = in.readString();
rtScreenName = in.readString();
photoImageUrl = in.readString();
photoLargeUrl = in.readString();
photoThumbUrl = in.readString();
truncated = in.readInt() == 0 ? false : true;
favorited = in.readInt() == 0 ? false : true;
retweeted = in.readInt() == 0 ? false : true;
self = in.readInt() == 0 ? false : true;
read = in.readInt() == 0 ? false : true;
thread = in.readInt() == 0 ? false : true;
photo = in.readInt() == 0 ? false : true;
special = in.readInt() == 0 ? false : true;
}
public static StatusModel from(Cursor cursor) {
if (cursor == null) {
return null;
}
StatusModel st = new StatusModel();
st.id = DataController.parseString(cursor, IBaseColumns.ID);
st.account = DataController.parseString(cursor, IBaseColumns.ACCOUNT);
st.owner = DataController.parseString(cursor, IBaseColumns.OWNER);
st.note = DataController.parseString(cursor, IBaseColumns.NOTE);
st.type = DataController.parseInt(cursor, IBaseColumns.TYPE);
st.flag = DataController.parseInt(cursor, IBaseColumns.FLAG);
st.rawid = DataController.parseLong(cursor, IBaseColumns.RAWID);
st.time = DataController.parseLong(cursor, IBaseColumns.TIME);
st.text = DataController.parseString(cursor, StatusColumns.TEXT);
st.simpleText = DataController.parseString(cursor, StatusColumns.SIMPLE_TEXT);
st.source = DataController.parseString(cursor, StatusColumns.SOURCE);
st.geo = DataController.parseString(cursor, StatusColumns.GEO);
st.media = DataController.parseString(cursor, StatusColumns.MEDIA);
st.userRawid = DataController.parseLong(cursor, StatusColumns.USER_RAWID);
st.userId = DataController.parseString(cursor, StatusColumns.USER_ID);
st.userScreenName = DataController.parseString(cursor, StatusColumns.USER_SCREEN_NAME);
st.userProfileImageUrl = DataController.parseString(cursor, StatusColumns.USER_PROFILE_IMAGE_URL);
st.inReplyToStatusId = DataController.parseString(cursor, StatusColumns.IN_REPLY_TO_STATUS_ID);
st.inReplyToUserId = DataController.parseString(cursor, StatusColumns.IN_REPLY_TO_USER_ID);
st.inReplyToScreenName = DataController.parseString(cursor, StatusColumns.IN_REPLY_TO_SCREEN_NAME);
st.rtStatusId = DataController.parseString(cursor, StatusColumns.RT_STATUS_ID);
st.rtUserId = DataController.parseString(cursor, StatusColumns.RT_USER_ID);
st.rtScreenName = DataController.parseString(cursor, StatusColumns.RT_USER_SCREEN_NAME);
st.photoImageUrl = DataController.parseString(cursor, StatusColumns.PHOTO_IMAGE_URL);
st.photoLargeUrl = DataController.parseString(cursor, StatusColumns.PHOTO_LARGE_URL);
st.photoThumbUrl = DataController.parseString(cursor, StatusColumns.PHOTO_THUMB_URL);
st.truncated = DataController.parseBoolean(cursor, StatusColumns.TRUNCATED);
st.favorited = DataController.parseBoolean(cursor, StatusColumns.FAVORITED);
st.retweeted = DataController.parseBoolean(cursor, StatusColumns.RETWEETED);
st.self = DataController.parseBoolean(cursor, StatusColumns.SELF);
st.read = DataController.parseBoolean(cursor, StatusColumns.READ);
st.thread = DataController.parseBoolean(cursor, StatusColumns.THREAD);
st.photo = DataController.parseBoolean(cursor, StatusColumns.PHOTO);
st.special = DataController.parseBoolean(cursor, StatusColumns.SPECIAL);
return st;
}
@Override
public ContentValues values() {
ContentValues cv = convert();
cv.put(StatusColumns.TEXT, this.text);
cv.put(StatusColumns.SIMPLE_TEXT, this.simpleText);
cv.put(StatusColumns.SOURCE, this.source);
cv.put(StatusColumns.GEO, this.geo);
cv.put(StatusColumns.MEDIA, this.media);
cv.put(StatusColumns.USER_RAWID, this.userRawid);
cv.put(StatusColumns.USER_ID, this.userId);
cv.put(StatusColumns.USER_SCREEN_NAME, this.userScreenName);
cv.put(StatusColumns.USER_PROFILE_IMAGE_URL, this.userProfileImageUrl);
cv.put(StatusColumns.IN_REPLY_TO_STATUS_ID, this.inReplyToStatusId);
cv.put(StatusColumns.IN_REPLY_TO_USER_ID, this.inReplyToUserId);
cv.put(StatusColumns.IN_REPLY_TO_SCREEN_NAME, this.inReplyToScreenName);
cv.put(StatusColumns.RT_STATUS_ID, this.rtStatusId);
cv.put(StatusColumns.RT_USER_ID, this.rtUserId);
cv.put(StatusColumns.RT_USER_SCREEN_NAME, this.rtScreenName);
cv.put(StatusColumns.PHOTO_IMAGE_URL, this.photoImageUrl);
cv.put(StatusColumns.PHOTO_THUMB_URL, this.photoThumbUrl);
cv.put(StatusColumns.PHOTO_LARGE_URL, this.photoLargeUrl);
cv.put(StatusColumns.TRUNCATED, this.truncated);
cv.put(StatusColumns.FAVORITED, this.favorited);
cv.put(StatusColumns.RETWEETED, this.retweeted);
cv.put(StatusColumns.SELF, this.self);
cv.put(StatusColumns.READ, this.read);
cv.put(StatusColumns.THREAD, this.thread);
cv.put(StatusColumns.PHOTO, this.photo);
cv.put(StatusColumns.SPECIAL, this.special);
return cv;
}
@Override
public Uri getContentUri() {
// TODO Auto-generated method stub
return StatusColumns.CONTENT_URI;
}
@Override
public String getTable() {
return StatusColumns.TABLE_NAME;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
writeBase(dest, flags);
dest.writeString(text);
dest.writeString(simpleText);
dest.writeString(source);
dest.writeString(geo);
dest.writeString(media);
dest.writeLong(userRawid);
dest.writeString(userId);
dest.writeString(userScreenName);
dest.writeString(userProfileImageUrl);
dest.writeString(inReplyToStatusId);
dest.writeString(inReplyToUserId);
dest.writeString(inReplyToScreenName);
dest.writeString(rtStatusId);
dest.writeString(rtUserId);
dest.writeString(rtScreenName);
dest.writeString(photoImageUrl);
dest.writeString(photoLargeUrl);
dest.writeString(photoThumbUrl);
dest.writeInt(truncated ? 1 : 0);
dest.writeInt(favorited ? 1 : 0);
dest.writeInt(retweeted ? 1 : 0);
dest.writeInt(self ? 1 : 0);
dest.writeInt(read ? 1 : 0);
dest.writeInt(thread ? 1 : 0);
dest.writeInt(photo ? 1 : 0);
dest.writeInt(special ? 1 : 0);
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getSimpleText() {
return simpleText;
}
public void setSimpleText(String simpleText) {
this.simpleText = simpleText;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getGeo() {
return geo;
}
public void setGeo(String geo) {
this.geo = geo;
}
public String getMedia() {
return media;
}
public void setMedia(String media) {
this.media = media;
}
public long getUserRawid() {
return userRawid;
}
public void setUserRawid(long userRawid) {
this.userRawid = userRawid;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserScreenName() {
return userScreenName;
}
public void setUserScreenName(String userScreenName) {
this.userScreenName = userScreenName;
}
public String getInReplyToStatusId() {
return inReplyToStatusId;
}
public void setInReplyToStatusId(String inReplyToStatusId) {
this.inReplyToStatusId = inReplyToStatusId;
}
public String getInReplyToUserId() {
return inReplyToUserId;
}
public void setInReplyToUserId(String inReplyToUserId) {
this.inReplyToUserId = inReplyToUserId;
}
public String getInReplyToScreenName() {
return inReplyToScreenName;
}
public void setInReplyToScreenName(String inReplyToScreenName) {
this.inReplyToScreenName = inReplyToScreenName;
}
public String getRtStatusId() {
return rtStatusId;
}
public void setRtStatusId(String rtStatusId) {
this.rtStatusId = rtStatusId;
}
public String getRtUserId() {
return rtUserId;
}
public void setRtUserId(String rtUserId) {
this.rtUserId = rtUserId;
}
public String getRtScreenName() {
return rtScreenName;
}
public void setRtScreenName(String rtScreenName) {
this.rtScreenName = rtScreenName;
}
public String getUserProfileImageUrl() {
return userProfileImageUrl;
}
public void setUserProfileImageUrl(String userProfileImageUrl) {
this.userProfileImageUrl = userProfileImageUrl;
}
public String getPhotoImageUrl() {
return photoImageUrl;
}
public void setPhotoImageUrl(String photoImageUrl) {
this.photoImageUrl = photoImageUrl;
}
public String getPhotoThumbUrl() {
return photoThumbUrl;
}
public void setPhotoThumbUrl(String photoThumbUrl) {
this.photoThumbUrl = photoThumbUrl;
}
public String getPhotoLargeUrl() {
return photoLargeUrl;
}
public void setPhotoLargeUrl(String photoLargeUrl) {
this.photoLargeUrl = photoLargeUrl;
}
public boolean isTruncated() {
return truncated;
}
public void setTruncated(boolean truncated) {
this.truncated = truncated;
}
public boolean isFavorited() {
return favorited;
}
public void setFavorited(boolean favorited) {
this.favorited = favorited;
}
public boolean isRetweeted() {
return retweeted;
}
public void setRetweeted(boolean retweeted) {
this.retweeted = retweeted;
}
public boolean isSelf() {
return self;
}
public void setSelf(boolean self) {
this.self = self;
}
public boolean isRead() {
return read;
}
public void setRead(boolean read) {
this.read = read;
}
public boolean isThread() {
return thread;
}
public void setThread(boolean thread) {
this.thread = thread;
}
public boolean isPhoto() {
return photo;
}
public void setPhoto(boolean photo) {
this.photo = photo;
}
public boolean isSpecial() {
return special;
}
public void setSpecial(boolean special) {
this.special = special;
}
public List<String> getUrls() {
return urls;
}
public void setUrls(List<String> urls) {
this.urls = urls;
}
public List<String> getHashtags() {
return hashtags;
}
public void setHashtags(List<String> hashtags) {
this.hashtags = hashtags;
}
public List<String> getMentions() {
return mentions;
}
public void setMentions(List<String> mentions) {
this.mentions = mentions;
}
public UserModel getUser() {
return user;
}
public void setUser(UserModel user) {
this.user = user;
if (user != null) {
this.userId = user.getId();
this.userScreenName = user.getScreenName();
this.userRawid = user.getRawid();
this.userProfileImageUrl = user.getProfileImageUrlLarge();
}
}
@Override
public String toString() {
return "StatusModel{" +
"text='" + text + '\'' +
", simpleText='" + simpleText + '\'' +
", source='" + source + '\'' +
", geo='" + geo + '\'' +
", media='" + media + '\'' +
", userRawid=" + userRawid +
", userId='" + userId + '\'' +
", userScreenName='" + userScreenName + '\'' +
", userProfileImageUrl='" + userProfileImageUrl + '\'' +
", inReplyToStatusId='" + inReplyToStatusId + '\'' +
", inReplyToUserId='" + inReplyToUserId + '\'' +
", inReplyToScreenName='" + inReplyToScreenName + '\'' +
", rtStatusId='" + rtStatusId + '\'' +
", rtUserId='" + rtUserId + '\'' +
", rtScreenName='" + rtScreenName + '\'' +
", photoImageUrl='" + photoImageUrl + '\'' +
", photoThumbUrl='" + photoThumbUrl + '\'' +
", photoLargeUrl='" + photoLargeUrl + '\'' +
", truncated=" + truncated +
", favorited=" + favorited +
", retweeted=" + retweeted +
", self=" + self +
", read=" + read +
", thread=" + thread +
", photo=" + photo +
", special=" + special +
", urls=" + urls +
", hashtags=" + hashtags +
", mentions=" + mentions +
", user=" + user +
'}';
}
}