package org.limewire.core.impl.search; import org.limewire.core.api.search.SearchEvent; import org.limewire.core.api.search.SearchFactory; import org.limewire.listener.EventBroadcaster; import org.limewire.listener.EventMulticaster; import org.limewire.listener.EventMulticasterImpl; import org.limewire.listener.ListenerSupport; import com.google.inject.AbstractModule; import com.google.inject.TypeLiteral; import com.google.inject.assistedinject.FactoryProvider; public class CoreGlueSearchModule extends AbstractModule { @Override protected void configure() { bind(SearchFactory.class).toProvider(FactoryProvider.newFactory(SearchFactory.class, CoreSearch.class)); EventMulticaster<SearchEvent> searchMulticaster = new EventMulticasterImpl<SearchEvent>(); bind(new TypeLiteral<EventBroadcaster<SearchEvent>>(){}).toInstance(searchMulticaster); bind(new TypeLiteral<ListenerSupport<SearchEvent>>(){}).toInstance(searchMulticaster); } }