package com.beloo.chipslayoutmanager.sample.entity; import android.os.Parcel; import android.os.Parcelable; import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; public class ChipsEntity implements Parcelable { @DrawableRes private Integer drawableResId; @Nullable private String description; @NonNull private String name; public Integer getDrawableResId() { return drawableResId; } @Nullable public String getDescription() { return description; } @NonNull public String getName() { return name; } public void setName(@NonNull String name) { this.name = name; } private ChipsEntity(Builder builder) { drawableResId = builder.drawableResId; description = builder.description; name = builder.name; } public static Builder newBuilder() { return new Builder(); } public static final class Builder { private int drawableResId; private String description; private String name; private Builder() { } @NonNull public Builder drawableResId(int drawableResId) { this.drawableResId = drawableResId; return this; } public Builder name(@NonNull String name) { this.name = name; return this; } @NonNull public Builder description(@Nullable String description) { this.description = description; return this; } @NonNull public ChipsEntity build() { return new ChipsEntity(this); } } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(this.drawableResId); dest.writeString(this.description); dest.writeString(this.name); } protected ChipsEntity(Parcel in) { this.drawableResId = in.readInt(); this.description = in.readString(); this.name = in.readString(); } public static final Parcelable.Creator<ChipsEntity> CREATOR = new Parcelable.Creator<ChipsEntity>() { @Override public ChipsEntity createFromParcel(Parcel source) { return new ChipsEntity(source); } @Override public ChipsEntity[] newArray(int size) { return new ChipsEntity[size]; } }; }