// Path: app/src/main/java/app/data/foundation/cache/RxProviders.java
// public interface RxProviders {
//     <T> Observable<T> getWireframeCurrentObject(Observable<T> oObject, EvictProvider evictProvider);
//     Observable<List<User>> getUsers(Observable<List<User>> oUsers, DynamicKey dynamicKey, EvictProvider evictProvider);
// }
// 
// Path: app/src/main/java/app/data/foundation/net/BadResponseException.java
// public class BadResponseException extends RuntimeException {
// 
//   public BadResponseException(String detailMessage) {
//     super(detailMessage);
//   }
// 
// }
// 
// Path: app/src/main/java/app/data/foundation/net/RestApi.java
// public interface RestApi {
//     String URL_BASE = "https://api.github.com";
//     String HEADER_API_VERSION = "Accept: application/vnd.github.v3+json";
// 
//     @Headers({HEADER_API_VERSION})
//     @GET("/users/{username}") Observable<Response<User>> getUserByName(@Path("username") String username);
// 
//     @Headers({HEADER_API_VERSION})
//     @GET("/users") Observable<Response<List<User>>> getUsers(@Query("since") int lastIdQueried, @Query("per_page") int perPage);
// }


import app.data.foundation.cache.RxProviders;
import app.data.foundation.net.BadResponseException;
import app.data.foundation.net.RestApi;
import com.google.gson.Gson;
import com.google.gson.JsonParseException;
import java.io.IOException;
import lombok.Data;
import retrofit2.Response;
/*
 * Copyright 2016 FuckBoilerplate
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package app.data.foundation;



public abstract class Repository {
    public static final int PER_PAGE = 50, FIRST_ID_QUERIED = 0;
    protected final RestApi restApi;
    protected final RxProviders rxProviders;
    protected final UIUtils uiUtils;

// Path: app/src/main/java/app/data/foundation/cache/RxProviders.java
// public interface RxProviders {
//     <T> Observable<T> getWireframeCurrentObject(Observable<T> oObject, EvictProvider evictProvider);
//     Observable<List<User>> getUsers(Observable<List<User>> oUsers, DynamicKey dynamicKey, EvictProvider evictProvider);
// }
// 
// Path: app/src/main/java/app/data/foundation/net/BadResponseException.java
// public class BadResponseException extends RuntimeException {
// 
//   public BadResponseException(String detailMessage) {
//     super(detailMessage);
//   }
// 
// }
// 
// Path: app/src/main/java/app/data/foundation/net/RestApi.java
// public interface RestApi {
//     String URL_BASE = "https://api.github.com";
//     String HEADER_API_VERSION = "Accept: application/vnd.github.v3+json";
// 
//     @Headers({HEADER_API_VERSION})
//     @GET("/users/{username}") Observable<Response<User>> getUserByName(@Path("username") String username);
// 
//     @Headers({HEADER_API_VERSION})
//     @GET("/users") Observable<Response<List<User>>> getUsers(@Query("since") int lastIdQueried, @Query("per_page") int perPage);
// }


// Path: app/src/main/java/app/data/foundation/Repository.java
import app.data.foundation.cache.RxProviders;
import app.data.foundation.net.BadResponseException;
import app.data.foundation.net.RestApi;
import com.google.gson.Gson;
import com.google.gson.JsonParseException;
import java.io.IOException;
import lombok.Data;
import retrofit2.Response;

/*
 * Copyright 2016 FuckBoilerplate
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package app.data.foundation;



public abstract class Repository {
    public static final int PER_PAGE = 50, FIRST_ID_QUERIED = 0;
    protected final RestApi restApi;
    protected final RxProviders rxProviders;
    protected final UIUtils uiUtils;

    public Repository(RestApi restApi, RxProviders rxProviders, UIUtils uiUtils) {