package org.jvalue.ods.processor.filter; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.inject.AbstractModule; import com.google.inject.TypeLiteral; import com.google.inject.assistedinject.FactoryModuleBuilder; import com.google.inject.name.Names; import org.jvalue.ods.processor.filter.domain.PegelBrandenburgMerger; import org.jvalue.ods.processor.filter.domain.PegelOnlineMerger; public final class FilterModule extends AbstractModule { @Override protected void configure() { install(new FactoryModuleBuilder() .implement( new TypeLiteral<Filter<ObjectNode, ObjectNode>>() { }, Names.named(FilterFactory.NAME_NOTIFICATION_FILTER), NotificationFilter.class) .implement( new TypeLiteral<Filter<ObjectNode, ObjectNode>>() { }, Names.named(FilterFactory.NAME_DB_INSERTION_FILTER), DbInsertionFilter.class) .implement( new TypeLiteral<Filter<ObjectNode, ObjectNode>>() { }, Names.named(FilterFactory.NAME_INT_TO_STRING_KEY_FILTER), IntToStringKeyFilter.class) .implement( new TypeLiteral<Filter<ArrayNode, ArrayNode>>() { }, Names.named(FilterFactory.NAME_INVALID_DOCUMENT_FILTER), InvalidDocumentFilter.class) .implement( new TypeLiteral<Filter<ObjectNode, ObjectNode>>() { }, Names.named(FilterFactory.NAME_PEGEL_ONLINE_MERGER), PegelOnlineMerger.class) .implement( new TypeLiteral<Filter<ObjectNode, ObjectNode>>() { }, Names.named(FilterFactory.NAME_PEGEL_BRANDENBURG_MERGER), PegelBrandenburgMerger.class) .build(FilterFactory.class)); } }