// Path: app/src/main/java/org/xdty/kindle/application/Application.java
// public class Application extends android.app.Application {
// 
//     private static AppComponent sAppComponent;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         sAppComponent = DaggerAppComponent.builder().appModule(new AppModule(this)).build();
//     }
// 
//     public static AppComponent getAppComponent() {
//         return sAppComponent;
//     }
// 
// }
// 
// Path: app/src/main/java/org/xdty/kindle/module/Books.java
// public class Books {
// 
//     private List<Book> books;
//     private String time;
//     private long timestamp;
// 
//     public List<Book> getBooks() {
//         return books;
//     }
// 
//     public void setBooks(List<Book> books) {
//         this.books = books;
//     }
// 
//     public String getTime() {
//         return time;
//     }
// 
//     public void setTime(String time) {
//         this.time = time;
//     }
// 
//     public long getTimestamp() {
//         return timestamp;
//     }
// 
//     public void setTimestamp(long timestamp) {
//         this.timestamp = timestamp;
//     }
// }
// 
// Path: app/src/main/java/org/xdty/kindle/module/database/Database.java
// public interface Database {
// 
//     List<Book> getCnBooksSync();
// 
//     List<Book> getEnBooksSync();
// 
//     List<Node> getBookNodesSync(String itemId);
// 
//     Node getNodeParentSync(long nodeId);
// 
//     List<Review> getReviewsSync(String itemId);
// 
//     Book getBookSync(String itemId);
// }
// 
// Path: app/src/main/java/org/xdty/kindle/utils/Constants.java
// public class Constants {
// 
//     public final static String BASE_URL = "https://static-10049225.file.myqcloud.com/";
//     //public final static String BASE_URL = "http://oe1kgsvca.bkt.clouddn.com/kindle.json";
// 
//     public final static String DB_NAME = "books.db";
//     public final static int DB_VERSION = 1;
// 
//     public final static long CACHE_TIME = 30 * 60 * 1000;
// 
// }


import org.xdty.kindle.application.Application;
import org.xdty.kindle.module.Book;
import org.xdty.kindle.module.Books;
import org.xdty.kindle.module.Node;
import org.xdty.kindle.module.Review;
import org.xdty.kindle.module.database.Database;
import org.xdty.kindle.utils.Constants;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
package org.xdty.kindle.data;





public class BookRepository implements BookDataSource {

    @Inject
    BookService mBookService;

    @Inject
    Database mDatabase;

    private Books mBooks;

    private Map<String, Review> mReviewCache = new HashMap<>();
    private Map<String, Book> mBookCache = new HashMap<>();

    public BookRepository() {
// Path: app/src/main/java/org/xdty/kindle/application/Application.java
// public class Application extends android.app.Application {
// 
//     private static AppComponent sAppComponent;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         sAppComponent = DaggerAppComponent.builder().appModule(new AppModule(this)).build();
//     }
// 
//     public static AppComponent getAppComponent() {
//         return sAppComponent;
//     }
// 
// }
// 
// Path: app/src/main/java/org/xdty/kindle/module/Books.java
// public class Books {
// 
//     private List<Book> books;
//     private String time;
//     private long timestamp;
// 
//     public List<Book> getBooks() {
//         return books;
//     }
// 
//     public void setBooks(List<Book> books) {
//         this.books = books;
//     }
// 
//     public String getTime() {
//         return time;
//     }
// 
//     public void setTime(String time) {
//         this.time = time;
//     }
// 
//     public long getTimestamp() {
//         return timestamp;
//     }
// 
//     public void setTimestamp(long timestamp) {
//         this.timestamp = timestamp;
//     }
// }
// 
// Path: app/src/main/java/org/xdty/kindle/module/database/Database.java
// public interface Database {
// 
//     List<Book> getCnBooksSync();
// 
//     List<Book> getEnBooksSync();
// 
//     List<Node> getBookNodesSync(String itemId);
// 
//     Node getNodeParentSync(long nodeId);
// 
//     List<Review> getReviewsSync(String itemId);
// 
//     Book getBookSync(String itemId);
// }
// 
// Path: app/src/main/java/org/xdty/kindle/utils/Constants.java
// public class Constants {
// 
//     public final static String BASE_URL = "https://static-10049225.file.myqcloud.com/";
//     //public final static String BASE_URL = "http://oe1kgsvca.bkt.clouddn.com/kindle.json";
// 
//     public final static String DB_NAME = "books.db";
//     public final static int DB_VERSION = 1;
// 
//     public final static long CACHE_TIME = 30 * 60 * 1000;
// 
// }


// Path: app/src/main/java/org/xdty/kindle/data/BookRepository.java
import org.xdty.kindle.application.Application;
import org.xdty.kindle.module.Book;
import org.xdty.kindle.module.Books;
import org.xdty.kindle.module.Node;
import org.xdty.kindle.module.Review;
import org.xdty.kindle.module.database.Database;
import org.xdty.kindle.utils.Constants;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

package org.xdty.kindle.data;





public class BookRepository implements BookDataSource {

    @Inject
    BookService mBookService;

    @Inject
    Database mDatabase;

    private Books mBooks;

    private Map<String, Review> mReviewCache = new HashMap<>();
    private Map<String, Book> mBookCache = new HashMap<>();

    public BookRepository() {
        Application.getAppComponent().inject(this);