
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