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

io.mstream.trader.datafeed.stocks.quandl.QuandlModule Maven / Gradle / Ivy

The newest version!
package io.mstream.trader.datafeed.stocks.quandl;


import com.google.inject.AbstractModule;
import com.google.inject.Scopes;
import com.google.inject.TypeLiteral;
import io.mstream.trader.datafeed.stocks.StocksRepository;
import io.netty.buffer.ByteBuf;
import io.reactivex.netty.protocol.http.client.HttpClient;

import javax.net.ssl.SSLEngine;
import java.time.format.DateTimeFormatter;
import java.util.function.Supplier;

import static com.google.inject.Scopes.SINGLETON;


public class QuandlModule
        extends AbstractModule {
    
    private static final TypeLiteral> SSL_ENGINE_SUPPLIER =
            new TypeLiteral>() {};
    
    private static final TypeLiteral>>
            HTTP_CLIENT_SUPPLIER =
            new TypeLiteral>>() {};
    
    @Override
    protected void configure() {
    
        bind(QuandlClient.class)
                .in(Scopes.SINGLETON);
    
        bind(StocksRepository.class)
                .to(QuandlStockRepository.class)
                .in(SINGLETON);
    
        bind(DateTimeFormatter.class)
                .annotatedWith(Quandl.class)
                .toInstance(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
    
        bind(UriBuilder.class)
                .in(Scopes.SINGLETON);
    
        bind(SSL_ENGINE_SUPPLIER)
                .annotatedWith(Quandl.class)
                .to(QuandlSslEngineSupplier.class)
                .in(Scopes.SINGLETON);
    
        bind(HTTP_CLIENT_SUPPLIER)
                .annotatedWith(Quandl.class)
                .to(QuandlHttpClientSupplier.class)
                .in(Scopes.SINGLETON);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy