package org.succlz123.doubanbooklog.bean.bookinfo;
import android.os.Parcel;
import android.os.Parcelable;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
/**
* Created by fashi on 2015/4/1.
*/
public class Book implements Parcelable {
private GlobalRating rating;//????????
private String subtitle;//?鼮??????
private List<String> author;//?鼮?????б?
private String pubdate;//????????
private List<GlobalTag> tags;//???????б?
private String origin_title;//???????????? ????
private String image;//?鼮???? ???????????????
private String binding;//??
private List<String> translator;//?????б?
private String catalog;//??
private int pages;//???
private BookImage images;//?鼮????
private String alt;//?鼮???
private String publisher;//?鼮??????id
private String isbn10;//?鼮??isbn10???
private String isbn13;//?鼮??isbn13??? ?????????isbn13
private String title;//?鼮????
private String url;//?鼮?????api????
private String alt_title;//???????????? ????
private String author_intro;//??????
private String summary;//?鼮???
private String price;//?鼮????
public GlobalRating getRating() {
return rating;
}
public void setRating(GlobalRating rating) {
this.rating = rating;
}
public String getSubtitle() {
return subtitle;
}
public void setSubtitle(String subtitle) {
this.subtitle = subtitle;
}
public List<String> getAuthor() {
return author;
}
public void setAuthor(List<String> author) {
this.author = author;
}
public String getPubdate() {
return pubdate;
}
public void setPubdate(String pubdate) {
this.pubdate = pubdate;
}
public List<GlobalTag> getTags() {
return tags;
}
public void setTags(List<GlobalTag> tags) {
this.tags = tags;
}
public String getOrigin_title() {
return origin_title;
}
public void setOrigin_title(String origin_title) {
this.origin_title = origin_title;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getBinding() {
return binding;
}
public void setBinding(String binding) {
this.binding = binding;
}
public List<String> getTranslator() {
return translator;
}
public void setTranslator(List<String> translator) {
this.translator = translator;
}
public String getCatalog() {
return catalog;
}
public void setCatalog(String catalog) {
this.catalog = catalog;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public BookImage getImages() {
return images;
}
public void setImages(BookImage images) {
this.images = images;
}
public String getAlt() {
return alt;
}
public void setAlt(String alt) {
this.alt = alt;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public String getIsbn10() {
return isbn10;
}
public void setIsbn10(String isbn10) {
this.isbn10 = isbn10;
}
public String getIsbn13() {
return isbn13;
}
public void setIsbn13(String isbn13) {
this.isbn13 = isbn13;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getAlt_title() {
return alt_title;
}
public void setAlt_title(String alt_title) {
this.alt_title = alt_title;
}
public String getAuthor_intro() {
return author_intro;
}
public void setAuthor_intro(String author_intro) {
this.author_intro = author_intro;
}
public String getSummary() {
return summary;
}
public void setSummary(String summary) {
this.summary = summary;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public static Book parseJson(JSONObject object) {
Book book = new Book();
{
JSONObject jsonObject = object.optJSONObject("rating");
GlobalRating globalRating = GlobalRating.parseJson(jsonObject);
book.setRating(globalRating);
}
String subtitle = object.optString("subtitle");
{
JSONArray authorJSONArray = object.optJSONArray("author");
List<String> collections = new ArrayList<String>();
for (int i = 0; i < authorJSONArray.length(); i++) {
String result = authorJSONArray.optString(i);
collections.add(result);
}
book.setAuthor(collections);
}
String pubdate = object.optString("pudate");
{
JSONArray tagsJSONArray = object.optJSONArray("tags");
List<GlobalTag> collections = new ArrayList<GlobalTag>();
for (int i = 0; i < tagsJSONArray.length(); i++) {
JSONObject jsonObject = tagsJSONArray.optJSONObject(i);
GlobalTag globalTag = GlobalTag.parseJson(jsonObject);
if (globalTag != null) {
collections.add(globalTag);
}
}
book.setTags(collections);
}
String origin_title = object.optString("origin_title");
String image = object.optString("image");
String binding = object.optString("binding");
{
JSONArray translatorJSONArray = object.optJSONArray("translator");
List<String> collections = new ArrayList<String>();
for (int i = 0; i < translatorJSONArray.length(); i++) {
String result = translatorJSONArray.optString(i);
collections.add(result);
}
book.setTranslator(collections);
}
String catalog = object.optString("catalog");
Integer pages = object.optInt("pages");
{
JSONObject jsonObject = object.optJSONObject("images");
BookImage bookImage = BookImage.parseJson(jsonObject);
book.setImages(bookImage);
}
String alt = object.optString("alt");
String publisher = object.optString("publisher");
String isbn10 = object.optString("isbn10");
String isbn13 = object.optString("isbn13");
String title = object.optString("title");
String url = object.optString("url");
String alt_title = object.optString("alt_title");
String author_intro = object.optString("author_intro");
String summary = object.optString("summary");
String price = object.optString("price");
book.setSubtitle(subtitle);
book.setPubdate(pubdate);
book.setOrigin_title(origin_title);
book.setImage(image);
book.setBinding(binding);
book.setCatalog(catalog);
book.setPages(pages);
book.setAlt(alt);
book.setPublisher(publisher);
book.setIsbn10(isbn10);
book.setIsbn13(isbn13);
book.setTitle(title);
book.setUrl(url);
book.setAlt_title(alt_title);
book.setAuthor_intro(author_intro);
book.setSummary(summary);
book.setPrice(price);
return book;
}
public Book() {
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeParcelable(this.rating, 0);
dest.writeString(this.subtitle);
dest.writeList(this.author);
dest.writeString(this.pubdate);
dest.writeList(this.tags);
dest.writeString(this.origin_title);
dest.writeString(this.image);
dest.writeString(this.binding);
dest.writeList(this.translator);
dest.writeString(this.catalog);
dest.writeInt(this.pages);
dest.writeParcelable(this.images, 0);
dest.writeString(this.alt);
dest.writeString(this.publisher);
dest.writeString(this.isbn10);
dest.writeString(this.isbn13);
dest.writeString(this.title);
dest.writeString(this.url);
dest.writeString(this.alt_title);
dest.writeString(this.author_intro);
dest.writeString(this.summary);
dest.writeString(this.price);
}
private Book(Parcel in) {
this.rating = in.readParcelable(GlobalRating.class.getClassLoader());
this.subtitle = in.readString();
this.author = new ArrayList<String>();
in.readList(this.author, getClass().getClassLoader());
this.pubdate = in.readString();
this.tags = new ArrayList<GlobalTag>();
in.readList(this.tags, getClass().getClassLoader());
this.origin_title = in.readString();
this.image = in.readString();
this.binding = in.readString();
this.translator = new ArrayList<String>();
in.readList(this.translator,getClass().getClassLoader());
this.catalog = in.readString();
this.pages = in.readInt();
this.images = in.readParcelable(BookImage.class.getClassLoader());
this.alt = in.readString();
this.publisher = in.readString();
this.isbn10 = in.readString();
this.isbn13 = in.readString();
this.title = in.readString();
this.url = in.readString();
this.alt_title = in.readString();
this.author_intro = in.readString();
this.summary = in.readString();
this.price = in.readString();
}
public static final Creator<Book> CREATOR = new Creator<Book>() {
public Book createFromParcel(Parcel source) {
return new Book(source);
}
public Book[] newArray(int size) {
return new Book[size];
}
};
}