package com.fastaccess.data.dao;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.Nullable;
import com.annimon.stream.Stream;
import com.fastaccess.data.dao.model.Issue;
import com.fastaccess.data.dao.model.IssueEvent;
import java.util.ArrayList;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
/**
* Created by Kosh on 10 Dec 2016, 3:34 PM
*/
@Getter @Setter
public class IssueEventAdapterModel implements Parcelable {
public static final int HEADER = 1;
public static final int ROW = 2;
private int type;
private IssueEvent issueEvent;
private Issue issueModel;
private IssueEventAdapterModel(int type, IssueEvent model) {
this.type = type;
this.issueEvent = model;
}
public IssueEventAdapterModel(int type, Issue issueModel) {
this.type = type;
this.issueModel = issueModel;
}
public static ArrayList<IssueEventAdapterModel> addEvents(@Nullable List<IssueEvent> modelList) {
ArrayList<IssueEventAdapterModel> models = new ArrayList<>();
if (modelList == null || modelList.isEmpty()) return models;
Stream.of(modelList).forEach(issueEventModel -> models.add(new IssueEventAdapterModel(ROW, issueEventModel)));
return models;
}
public IssueEventAdapterModel() {}
@Override public int describeContents() { return 0; }
@Override public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.type);
dest.writeParcelable(this.issueEvent, flags);
dest.writeParcelable(this.issueModel, flags);
}
protected IssueEventAdapterModel(Parcel in) {
this.type = in.readInt();
this.issueEvent = in.readParcelable(IssueEvent.class.getClassLoader());
this.issueModel = in.readParcelable(Issue.class.getClassLoader());
}
public static final Creator<IssueEventAdapterModel> CREATOR = new Creator<IssueEventAdapterModel>() {
@Override public IssueEventAdapterModel createFromParcel(Parcel source) {return new IssueEventAdapterModel(source);}
@Override public IssueEventAdapterModel[] newArray(int size) {return new IssueEventAdapterModel[size];}
};
}