package org.limewire.promotion; import org.limewire.inject.AbstractModule; import org.limewire.promotion.impressions.ImpressionsCollector; import org.limewire.promotion.impressions.ImpressionsCollectorImpl; public class LimeWirePromotionModule extends AbstractModule { private final Class<? extends PromotionBinderRequestor> promotionBinderRequestorClass; private final Class<? extends PromotionServices> promotionServices; public LimeWirePromotionModule(Class<? extends PromotionBinderRequestor> promotionBinderRequestorClass, Class<? extends PromotionServices> promotionServices) { this.promotionBinderRequestorClass = promotionBinderRequestorClass; this.promotionServices = promotionServices; } @Override protected void configure() { bind(SearcherDatabase.class).to(SearcherDatabaseImpl.class); bind(PromotionSearcher.class).to(PromotionSearcherImpl.class); bind(PromotionBinderRepository.class).to(PromotionBinderRepositoryImpl.class); bind(KeywordUtil.class).to(KeywordUtilImpl.class); bind(ImpressionsCollector.class).to(ImpressionsCollectorImpl.class); bind(PromotionBinderFactory.class).to(PromotionBinderFactoryImpl.class); bind(PromotionBinderRequestor.class).to(promotionBinderRequestorClass); bind(PromotionServices.class).to(promotionServices); } }