package com.qubling.sidekick.instance;
import com.qubling.sidekick.model.Model;
import com.qubling.sidekick.search.Schema;
import android.os.Parcel;
import android.os.Parcelable;
public class Author extends Instance<Author> {
private String pauseId;
private String fullName;
private Gravatar gravatar;
public Author(Model<Author> model, String pauseId) {
super(model);
this.pauseId = pauseId;
}
public Author(Parcel in) {
pauseId = in.readString();
fullName = in.readString();
gravatar = in.readParcelable(Author.class.getClassLoader());
}
@Override
public String getKey() {
return pauseId;
}
public String getPauseId() {
return pauseId;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getGravatarUrl() {
return gravatar == null ? null : gravatar.getUrl();
}
public void setGravatarUrl(String gravatarUrl) {
gravatar = getModel().getSchema().getGravatarModel().acquireInstance(gravatarUrl);
}
public Gravatar getGravatar() {
return gravatar;
}
public void setGravatar(Gravatar gravatar) {
this.gravatar = gravatar;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeString(pauseId);
out.writeString(fullName);
out.writeParcelable(gravatar, flags);
}
public static final Parcelable.Creator<Author> CREATOR
= new Parcelable.Creator<Author>() {
@Override
public Author createFromParcel(Parcel in) {
return new Author(in);
}
@Override
public Author[] newArray(int size) {
return new Author[size];
}
};
@Override
protected void attachRelatedModels(Schema schema) {
if (gravatar != null) {
gravatar.attachToModel(schema.getGravatarModel());
}
}
@Override
protected void addToCache() {
getModel().cache(this);
if (gravatar != null)
gravatar.addToCache();
}
@Override
public String toString() {
return "Author(" + getPauseId() + ")";
}
}