package sj.keyboard.data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.UUID;
public class PageSetEntity<T extends PageEntity> implements Serializable {
protected final String uuid = UUID.randomUUID().toString();
protected final int mPageCount;
protected final boolean mIsShowIndicator;
protected final LinkedList<T> mPageEntityList;
protected final String mIconUri;
protected final String mSetName;
public PageSetEntity(final Builder builder) {
this.mPageCount = builder.pageCount;
this.mIsShowIndicator = builder.isShowIndicator;
this.mPageEntityList = builder.pageEntityList;
this.mIconUri = builder.iconUri;
this.mSetName = builder.setName;
}
public String getIconUri() {
return mIconUri;
}
public int getPageCount() {
return mPageEntityList == null ? 0 : mPageEntityList.size();
}
public LinkedList<T> getPageEntityList() {
return mPageEntityList;
}
public String getUuid() {
return uuid;
}
public boolean isShowIndicator() {
return mIsShowIndicator;
}
public static class Builder<T extends PageEntity> {
protected int pageCount;
protected boolean isShowIndicator = true;
protected LinkedList<T> pageEntityList = new LinkedList<>();
protected String iconUri;
protected String setName;
public Builder setPageCount(int pageCount) {
this.pageCount = pageCount;
return this;
}
public Builder setShowIndicator(boolean showIndicator) {
isShowIndicator = showIndicator;
return this;
}
public Builder setPageEntityList(LinkedList<T> pageEntityList) {
this.pageEntityList = pageEntityList;
return this;
}
public Builder addPageEntity(T pageEntityt) {
pageEntityList.add(pageEntityt);
return this;
}
public Builder setIconUri(String iconUri) {
this.iconUri = iconUri;
return this;
}
public Builder setIconUri(int iconUri) {
this.iconUri = "" + iconUri;
return this;
}
public Builder setSetName(String setName) {
this.setName = setName;
return this;
}
public Builder() {
}
public PageSetEntity<T> build() {
return new PageSetEntity<>(this);
}
}
}