All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.spincast.plugins.httpclient.SpincastHttpClientPluginGuiceModule Maven / Gradle / Ivy

The newest version!
package org.spincast.plugins.httpclient;

import java.lang.reflect.Type;

import org.spincast.core.guice.SpincastPluginGuiceModuleBase;
import org.spincast.plugins.httpclient.builders.ConnectRequestBuilder;
import org.spincast.plugins.httpclient.builders.DeleteRequestBuilder;
import org.spincast.plugins.httpclient.builders.GetRequestBuilder;
import org.spincast.plugins.httpclient.builders.HeadRequestBuilder;
import org.spincast.plugins.httpclient.builders.IConnectRequestBuilder;
import org.spincast.plugins.httpclient.builders.IDeleteRequestBuilder;
import org.spincast.plugins.httpclient.builders.IGetRequestBuilder;
import org.spincast.plugins.httpclient.builders.IHeadRequestBuilder;
import org.spincast.plugins.httpclient.builders.IOptionsRequestBuilder;
import org.spincast.plugins.httpclient.builders.IPatchRequestBuilder;
import org.spincast.plugins.httpclient.builders.IPostRequestBuilder;
import org.spincast.plugins.httpclient.builders.IPutRequestBuilder;
import org.spincast.plugins.httpclient.builders.ITraceRequestBuilder;
import org.spincast.plugins.httpclient.builders.OptionsRequestBuilder;
import org.spincast.plugins.httpclient.builders.PatchRequestBuilder;
import org.spincast.plugins.httpclient.builders.PostRequestBuilder;
import org.spincast.plugins.httpclient.builders.PutRequestBuilder;
import org.spincast.plugins.httpclient.builders.TraceRequestBuilder;
import org.spincast.plugins.httpclient.utils.ISpincastHttpClientUtils;
import org.spincast.plugins.httpclient.utils.SpincastHttpClientUtils;

import com.google.inject.Scopes;
import com.google.inject.assistedinject.FactoryModuleBuilder;

/**
 * Guice module for the Spincast Http Client plugin.
 */
public class SpincastHttpClientPluginGuiceModule extends SpincastPluginGuiceModuleBase {

    /**
     * Constructor.
     */
    public SpincastHttpClientPluginGuiceModule(Type requestContextType, Type websocketContextType) {
        super(requestContextType, websocketContextType);
    }

    @Override
    protected void configure() {
        bindHttpClientFactory();
        bindHttpResponseFactory();
        bindSpincastHttpClientUtils();
    }

    protected void bindHttpClientFactory() {

        install(new FactoryModuleBuilder().implement(IGetRequestBuilder.class, GetRequestBuilder.class)
                                          .implement(IPostRequestBuilder.class, PostRequestBuilder.class)
                                          .implement(IPutRequestBuilder.class, PutRequestBuilder.class)
                                          .implement(IDeleteRequestBuilder.class, DeleteRequestBuilder.class)
                                          .implement(ITraceRequestBuilder.class, TraceRequestBuilder.class)
                                          .implement(IOptionsRequestBuilder.class, OptionsRequestBuilder.class)
                                          .implement(IHeadRequestBuilder.class, HeadRequestBuilder.class)
                                          .implement(IConnectRequestBuilder.class, ConnectRequestBuilder.class)
                                          .implement(IPatchRequestBuilder.class, PatchRequestBuilder.class)
                                          .build(IHttpClient.class));
    }

    protected void bindHttpResponseFactory() {
        install(new FactoryModuleBuilder().implement(IHttpResponse.class, SpincastHttpResponse.class)
                                          .build(IHttpResponseFactory.class));
    }

    protected void bindSpincastHttpClientUtils() {
        bind(ISpincastHttpClientUtils.class).to(getSpincastHttpClientUtilsClass()).in(Scopes.SINGLETON);
    }

    protected Class getSpincastHttpClientUtilsClass() {
        return SpincastHttpClientUtils.class;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy