package br.com.nglauber.livrosfirebase.model; import android.databinding.BaseObservable; import android.databinding.Bindable; import com.google.firebase.database.Exclude; import java.io.Serializable; import br.com.nglauber.livrosfirebase.BR; public class Book extends BaseObservable implements Serializable { private String id; private String title; private String author; private String coverUrl; private int pages; private int year; private Publisher publisher; private boolean available; private MediaType mediaType; private float rating; @Exclude public String getId() { return id; } public void setId(String id) { this.id = id; } @Bindable public String getTitle() { return title; } public void setTitle(String title) { this.title = title; notifyPropertyChanged(BR.title); } @Bindable public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; notifyPropertyChanged(BR.author); } @Bindable public String getCoverUrl() { return coverUrl; } public void setCoverUrl(String coverUrl) { this.coverUrl = coverUrl; notifyPropertyChanged(BR.coverUrl); } @Bindable public int getPages() { return pages; } public void setPages(int pages) { this.pages = pages; notifyPropertyChanged(BR.pages); } @Bindable public Publisher getPublisher() { return publisher; } public void setPublisher(Publisher publisher) { this.publisher = publisher; notifyPropertyChanged(BR.publisher); } @Bindable public boolean isAvailable() { return available; } public void setAvailable(boolean available) { this.available = available; notifyPropertyChanged(BR.available); } @Exclude @Bindable public MediaType getMediaTypeValue() { return mediaType; } public void setMediaTypeValue(MediaType mediaType) { this.mediaType = mediaType; notifyPropertyChanged(BR.mediaTypeValue); } public String getMediaType() { return mediaType != null ? mediaType.toString() : null; } public void setMediaType(String mediaType) { if (mediaType != null){ setMediaTypeValue(MediaType.valueOf(mediaType)); } } @Bindable public int getYear() { return year; } public void setYear(int year) { this.year = year; notifyPropertyChanged(BR.year); } @Bindable public float getRating() { return rating; } public void setRating(float rating) { this.rating = rating; notifyPropertyChanged(BR.rating); } }