// Path: library/src/main/java/com/siu/android/volleyball/BallResponse.java
// public class BallResponse<T> {
// 
//     public static enum ResponseSource {
//         LOCAL, CACHE, NETWORK
//     }
// 
//     protected Response<T> mResponse;
//     protected ResponseSource mResponseSource;
//     protected boolean mIdentical = false;
// 
//     /**
//      * Returns whether this response is considered successful.
//      */
//     public boolean isSuccess() {
//         return mResponse.isSuccess();
//     }
// 
//     public static <T> BallResponse<T> identical(ResponseSource responseSource) {
//         return new BallResponse<T>(Response.<T>success(null, null), responseSource, true);
//     }
// 
//     public static <T> BallResponse<T> success(T result) {
//         return new BallResponse<T>(Response.success(result, null));
//     }
// 
//     public static <T> BallResponse<T> success(T result, Cache.Entry cacheEntry) {
//         return new BallResponse<T>(Response.success(result, cacheEntry));
//     }
// 
//     public static <T> BallResponse<T> error(VolleyError error) {
//         return new BallResponse<T>(Response.<T>error(error), ResponseSource.NETWORK); // error cames always from network
//     }
// 
//     protected BallResponse(Response<T> response) {
//         this(response, null, false);
//     }
// 
//     protected BallResponse(Response<T> response, ResponseSource responseSource) {
//         this(response, responseSource, false);
//     }
// 
//     public BallResponse(Response<T> response, ResponseSource responseSource, boolean identical) {
//         mResponse = response;
//         mResponseSource = responseSource;
//         mIdentical = identical;
//     }
// 
//     public ResponseSource getResponseSource() {
//         return mResponseSource;
//     }
// 
//     public void setResponseSource(ResponseSource responseSource) {
//         this.mResponseSource = responseSource;
//     }
// 
//     public boolean isIntermediate() {
//         return mResponse.intermediate;
//     }
// 
//     public void setIntermediate(boolean intermediate) {
//         mResponse.intermediate = intermediate;
//     }
// 
//     public T getResult() {
//         return mResponse.result;
//     }
// 
//     public Cache.Entry getCacheEntry() {
//         return mResponse.cacheEntry;
//     }
// 
//     public VolleyError getError() {
//         return mResponse.error;
//     }
// 
//     public boolean isIdentical() {
//         return mIdentical;
//     }
// 
//     public void setIdentical(boolean identical) {
//         mIdentical = identical;
//     }
// }
// 
// Path: library/src/main/java/com/siu/android/volleyball/request/NetworkRequest.java
// public abstract class NetworkRequest<T> extends BallRequest<T> {
// 
//     protected NetworkRequest(int method, String url, Response.ErrorListener errorListener) {
//         super(method, url, errorListener);
//     }
// 
//     public NetworkRequest(int method, String url, SingleResponseListener<T> responseListener, Response.ErrorListener errorListener) {
//         super(method, url, responseListener, errorListener);
//     }
// 
//     @Override
//     public boolean shouldProcessNetwork() {
//         return true;
//     }
// 
//     @Override
//     protected NetworkRequestProcessor createNetworkRequestProcessor() {
//         return new NetworkRequestProcessor() {
//             @Override
//             public BallResponse<T> parseNetworkResponse(NetworkResponse networkResponse) {
//                 return parseBallNetworkResponse(networkResponse);
//             }
//         };
//     }
// 
//     protected abstract BallResponse<T> parseBallNetworkResponse(NetworkResponse response);
// }


import com.siu.android.volleyball.BallResponse;
import com.siu.android.volleyball.request.NetworkRequest;
package com.android.volley;


/**
 * Not finished
 */
public class CompatRequest<T> extends NetworkRequest<T> {

    private Request<T> mRequest;

    public CompatRequest(Request request) {
        super(request.getMethod(), request.getUrl(), null);
    }

    @Override
// Path: library/src/main/java/com/siu/android/volleyball/BallResponse.java
// public class BallResponse<T> {
// 
//     public static enum ResponseSource {
//         LOCAL, CACHE, NETWORK
//     }
// 
//     protected Response<T> mResponse;
//     protected ResponseSource mResponseSource;
//     protected boolean mIdentical = false;
// 
//     /**
//      * Returns whether this response is considered successful.
//      */
//     public boolean isSuccess() {
//         return mResponse.isSuccess();
//     }
// 
//     public static <T> BallResponse<T> identical(ResponseSource responseSource) {
//         return new BallResponse<T>(Response.<T>success(null, null), responseSource, true);
//     }
// 
//     public static <T> BallResponse<T> success(T result) {
//         return new BallResponse<T>(Response.success(result, null));
//     }
// 
//     public static <T> BallResponse<T> success(T result, Cache.Entry cacheEntry) {
//         return new BallResponse<T>(Response.success(result, cacheEntry));
//     }
// 
//     public static <T> BallResponse<T> error(VolleyError error) {
//         return new BallResponse<T>(Response.<T>error(error), ResponseSource.NETWORK); // error cames always from network
//     }
// 
//     protected BallResponse(Response<T> response) {
//         this(response, null, false);
//     }
// 
//     protected BallResponse(Response<T> response, ResponseSource responseSource) {
//         this(response, responseSource, false);
//     }
// 
//     public BallResponse(Response<T> response, ResponseSource responseSource, boolean identical) {
//         mResponse = response;
//         mResponseSource = responseSource;
//         mIdentical = identical;
//     }
// 
//     public ResponseSource getResponseSource() {
//         return mResponseSource;
//     }
// 
//     public void setResponseSource(ResponseSource responseSource) {
//         this.mResponseSource = responseSource;
//     }
// 
//     public boolean isIntermediate() {
//         return mResponse.intermediate;
//     }
// 
//     public void setIntermediate(boolean intermediate) {
//         mResponse.intermediate = intermediate;
//     }
// 
//     public T getResult() {
//         return mResponse.result;
//     }
// 
//     public Cache.Entry getCacheEntry() {
//         return mResponse.cacheEntry;
//     }
// 
//     public VolleyError getError() {
//         return mResponse.error;
//     }
// 
//     public boolean isIdentical() {
//         return mIdentical;
//     }
// 
//     public void setIdentical(boolean identical) {
//         mIdentical = identical;
//     }
// }
// 
// Path: library/src/main/java/com/siu/android/volleyball/request/NetworkRequest.java
// public abstract class NetworkRequest<T> extends BallRequest<T> {
// 
//     protected NetworkRequest(int method, String url, Response.ErrorListener errorListener) {
//         super(method, url, errorListener);
//     }
// 
//     public NetworkRequest(int method, String url, SingleResponseListener<T> responseListener, Response.ErrorListener errorListener) {
//         super(method, url, responseListener, errorListener);
//     }
// 
//     @Override
//     public boolean shouldProcessNetwork() {
//         return true;
//     }
// 
//     @Override
//     protected NetworkRequestProcessor createNetworkRequestProcessor() {
//         return new NetworkRequestProcessor() {
//             @Override
//             public BallResponse<T> parseNetworkResponse(NetworkResponse networkResponse) {
//                 return parseBallNetworkResponse(networkResponse);
//             }
//         };
//     }
// 
//     protected abstract BallResponse<T> parseBallNetworkResponse(NetworkResponse response);
// }


// Path: library/src/main/java/com/android/volley/CompatRequest.java
import com.siu.android.volleyball.BallResponse;
import com.siu.android.volleyball.request.NetworkRequest;

package com.android.volley;


/**
 * Not finished
 */
public class CompatRequest<T> extends NetworkRequest<T> {

    private Request<T> mRequest;

    public CompatRequest(Request request) {
        super(request.getMethod(), request.getUrl(), null);
    }

    @Override
    protected BallResponse<T> parseBallNetworkResponse(NetworkResponse networkResponse) {