package org.qii.weiciyuan.bean;
import org.qii.weiciyuan.support.utils.ObjectToStringUtility;
import android.os.Parcel;
import android.os.Parcelable;
import java.util.ArrayList;
import java.util.List;
/**
* User: qii
* Date: 12-8-18
*/
public class FavListBean extends ListBean<MessageBean, FavListBean> implements Parcelable {
private List<FavBean> favorites = new ArrayList<FavBean>();
private List<MessageBean> actualStore = null;
@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(favorites);
dest.writeTypedList(actualStore);
}
public static final Parcelable.Creator<FavListBean> CREATOR =
new Parcelable.Creator<FavListBean>() {
public FavListBean createFromParcel(Parcel in) {
FavListBean favListBean = new FavListBean();
favListBean.total_number = in.readInt();
favListBean.previous_cursor = in.readString();
favListBean.next_cursor = in.readString();
favListBean.favorites = new ArrayList<FavBean>();
in.readTypedList(favListBean.favorites, FavBean.CREATOR);
favListBean.actualStore = new ArrayList<MessageBean>();
in.readTypedList(favListBean.actualStore, MessageBean.CREATOR);
return favListBean;
}
public FavListBean[] newArray(int size) {
return new FavListBean[size];
}
};
public List<FavBean> getFavorites() {
return favorites;
}
public void setFavorites(List<FavBean> favorites) {
this.favorites = favorites;
}
@Override
public int getSize() {
return favorites.size();
}
@Override
public MessageBean getItem(int position) {
return favorites.get(position).getStatus();
}
@Override
public List<MessageBean> getItemList() {
if (actualStore == null) {
actualStore = new ArrayList<MessageBean>();
for (FavBean b : favorites) {
actualStore.add(b.getStatus());
}
}
return actualStore;
}
public void replaceData(FavListBean newValue) {
if (newValue != null && newValue.getSize() > 0) {
this.getItemList().clear();
this.getItemList().addAll(newValue.getItemList());
this.setTotal_number(newValue.getTotal_number());
this.favorites.clear();
this.favorites.addAll(newValue.getFavorites());
}
}
@Override
public void addNewData(FavListBean newValue) {
replaceData(newValue);
}
@Override
public void addOldData(FavListBean oldValue) {
if (oldValue != null && oldValue.getSize() > 0) {
getItemList().addAll(oldValue.getItemList());
setTotal_number(oldValue.getTotal_number());
this.favorites.addAll(oldValue.getFavorites());
}
}
@Override
public String toString() {
return ObjectToStringUtility.toString(this);
}
}