
io.mstream.trader.datafeed.handlers.api.stocks.price.GetPriceModule Maven / Gradle / Ivy
The newest version!
package io.mstream.trader.datafeed.handlers.api.stocks.price;
import com.google.inject.AbstractModule;
import com.google.inject.assistedinject.FactoryModuleBuilder;
import io.mstream.trader.commons.ratpack.exception.ValidationErrorHandler;
import io.mstream.trader.commons.validation.parameter.LocalDateValidator;
import io.mstream.trader.commons.validation.request.RequestValidator;
import io.mstream.trader.datafeed.handlers.api.stocks.price.data.PriceDataModule;
import io.mstream.trader.datafeed.handlers.api.stocks.price.data.StockPrice;
import io.mstream.trader.datafeed.handlers.api.stocks.price.data.StockPriceFactory;
import ratpack.handling.Handler;
import java.time.format.DateTimeFormatter;
import static com.google.inject.Scopes.SINGLETON;
public class GetPriceModule extends AbstractModule {
@Override
protected void configure() {
install(new PriceDataModule());
install(new FactoryModuleBuilder()
.implement(StockPrice.class, StockPrice.class)
.build(StockPriceFactory.class));
bind(ValidationErrorHandler.class)
.annotatedWith(GetPrice.class)
.to(GetPriceValidationErrorHandler.class)
.in(SINGLETON);
bind(RequestValidator.class)
.annotatedWith(GetPrice.class)
.to(GetPriceRequestValidator.class)
.in(SINGLETON);
bind(Handler.class)
.annotatedWith(GetPrice.class)
.to(GetPriceHandler.class)
.in(SINGLETON);
bind(DateTimeFormatter.class)
.toInstance(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
bind(LocalDateValidator.class)
.toProvider(LocalDateValidatorProvider.class)
.in(SINGLETON);
bind(ParameterNameProvider.class)
.in(SINGLETON);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy