package com.jasonchen.microlang.beans; import android.os.Parcel; import android.os.Parcelable; import com.jasonchen.microlang.utils.ObjectToStringUtility; import java.util.ArrayList; import java.util.List; /** * jasonchen * 2015/04/10 */ public class RepostListBean extends ListBean<MessageBean, RepostListBean> implements Parcelable { private List<MessageBean> reposts = new ArrayList<MessageBean>(); @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(total_number); dest.writeString(previous_cursor); dest.writeString(next_cursor); dest.writeTypedList(reposts); } public static final Creator<RepostListBean> CREATOR = new Creator<RepostListBean>() { public RepostListBean createFromParcel(Parcel in) { RepostListBean repostListBean = new RepostListBean(); repostListBean.total_number = in.readInt(); repostListBean.previous_cursor = in.readString(); repostListBean.next_cursor = in.readString(); repostListBean.reposts = new ArrayList<MessageBean>(); in.readTypedList(repostListBean.reposts, MessageBean.CREATOR); return repostListBean; } public RepostListBean[] newArray(int size) { return new RepostListBean[size]; } }; private List<MessageBean> getReposts() { return reposts; } public void setReposts(List<MessageBean> reposts) { this.reposts = reposts; } @Override public int getSize() { return getReposts().size(); } @Override public MessageBean getItem(int position) { return getReposts().get(position); } @Override public List<MessageBean> getItemList() { return getReposts(); } @Override public void addNewData(RepostListBean newValue) { throw new UnsupportedOperationException("use replaceAll instead"); } @Override public void addOldData(RepostListBean oldValue) { if (oldValue != null && oldValue.getSize() > 1) { getItemList().addAll(oldValue.getItemList().subList(1, oldValue.getSize())); setTotal_number(oldValue.getTotal_number()); } } public void replaceAll(RepostListBean newValue) { if (newValue != null && newValue.getSize() > 0) { setTotal_number(newValue.getTotal_number()); getItemList().clear(); getItemList().addAll(newValue.getItemList()); } } @Override public String toString() { return ObjectToStringUtility.toString(this); } }