// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/exceptions/AlreadyExecutingException.java
// public class AlreadyExecutingException extends RuntimeException{
// }
// 
// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/listeners/OnExceptionListener.java
// public interface OnExceptionListener {
//     void onExceptionThrown(Exception e);
// }
// 
// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/listeners/OnListResponseListener.java
// public interface OnListResponseListener<T> {
// 
//     void onResponse(int code, List<T> object, Response fullResponse);
// }
// 
// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/listeners/OnObjResponseListener.java
// public interface OnObjResponseListener<T> {
// 
//     void onResponse(int code, T object, Response fullResponse);
// }
// 
// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/listeners/OnResponseListener.java
// public interface OnResponseListener {
// 
//     void onResponse(int code, Response fullResponse, Exception e);
// 
// }
// 
// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/listeners/OnTimeoutListener.java
// public interface OnTimeoutListener {
//     void onTimeout();
// }


import com.greengrowapps.ggarest.exceptions.AlreadyExecutingException;
import com.greengrowapps.ggarest.listeners.OnExceptionListener;
import com.greengrowapps.ggarest.listeners.OnListResponseListener;
import com.greengrowapps.ggarest.listeners.OnObjResponseListener;
import com.greengrowapps.ggarest.listeners.OnResponseListener;
import com.greengrowapps.ggarest.listeners.OnTimeoutListener;
import java.io.File;
import java.util.Collection;
    @Override
    public <T> RequestBuilder onResponse(Class<T> responseClass, int statusCode, OnObjResponseListener<T> listener) {
        connectionDefinition.registerListener(responseClass,statusCode,listener);
        return this;
    }

    @Override
    public <T> RequestBuilder onResponse(Class<T> responseClass, int statusCode, OnListResponseListener<T> listener) {
        connectionDefinition.registerListener(responseClass,statusCode,listener);
        return this;
    }

    @Override
    public RequestBuilder onSuccess(OnResponseListener listener) {
        connectionDefinition.registerListener(200,listener);
        return this;
    }

    @Override
    public <T> RequestBuilder onSuccess(Class<T> responseClass, OnObjResponseListener<T> listener) {
        connectionDefinition.registerListener(responseClass,200,listener);
        return this;
    }

    @Override
    public <T> RequestBuilder onSuccess(Class<T> responseClass, OnListResponseListener<T> listener) {
        connectionDefinition.registerListener(responseClass,200,listener);
        return this;
    }

// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/exceptions/AlreadyExecutingException.java
// public class AlreadyExecutingException extends RuntimeException{
// }
// 
// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/listeners/OnExceptionListener.java
// public interface OnExceptionListener {
//     void onExceptionThrown(Exception e);
// }
// 
// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/listeners/OnListResponseListener.java
// public interface OnListResponseListener<T> {
// 
//     void onResponse(int code, List<T> object, Response fullResponse);
// }
// 
// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/listeners/OnObjResponseListener.java
// public interface OnObjResponseListener<T> {
// 
//     void onResponse(int code, T object, Response fullResponse);
// }
// 
// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/listeners/OnResponseListener.java
// public interface OnResponseListener {
// 
//     void onResponse(int code, Response fullResponse, Exception e);
// 
// }
// 
// Path: GgaRestJavaLib/ggarest/src/main/java/com/greengrowapps/ggarest/listeners/OnTimeoutListener.java
// public interface OnTimeoutListener {
//     void onTimeout();
// }


// Path: GgaRestAndroidLib/ggarest/src/main/java/com/greengrowapps/ggarest/RequestBuilderImpl.java
import com.greengrowapps.ggarest.exceptions.AlreadyExecutingException;
import com.greengrowapps.ggarest.listeners.OnExceptionListener;
import com.greengrowapps.ggarest.listeners.OnListResponseListener;
import com.greengrowapps.ggarest.listeners.OnObjResponseListener;
import com.greengrowapps.ggarest.listeners.OnResponseListener;
import com.greengrowapps.ggarest.listeners.OnTimeoutListener;
import java.io.File;
import java.util.Collection;

    @Override
    public <T> RequestBuilder onResponse(Class<T> responseClass, int statusCode, OnObjResponseListener<T> listener) {
        connectionDefinition.registerListener(responseClass,statusCode,listener);
        return this;
    }

    @Override
    public <T> RequestBuilder onResponse(Class<T> responseClass, int statusCode, OnListResponseListener<T> listener) {
        connectionDefinition.registerListener(responseClass,statusCode,listener);
        return this;
    }

    @Override
    public RequestBuilder onSuccess(OnResponseListener listener) {
        connectionDefinition.registerListener(200,listener);
        return this;
    }

    @Override
    public <T> RequestBuilder onSuccess(Class<T> responseClass, OnObjResponseListener<T> listener) {
        connectionDefinition.registerListener(responseClass,200,listener);
        return this;
    }

    @Override
    public <T> RequestBuilder onSuccess(Class<T> responseClass, OnListResponseListener<T> listener) {
        connectionDefinition.registerListener(responseClass,200,listener);
        return this;
    }

    @Override