io.bootique.linkmove.LinkMoveModule Maven / Gradle / Ivy
package io.bootique.linkmove;
import com.google.inject.Binder;
import com.google.inject.Injector;
import com.google.inject.Provides;
import com.google.inject.multibindings.Multibinder;
import com.nhl.link.move.runtime.LmRuntime;
import io.bootique.ConfigModule;
import io.bootique.config.ConfigurationFactory;
import org.apache.cayenne.configuration.server.ServerRuntime;
import java.util.Set;
public class LinkMoveModule extends ConfigModule {
public LinkMoveModule() {
}
public LinkMoveModule(String configPrefix) {
super(configPrefix);
}
public static Multibinder contributeBuildCallback(Binder binder) {
return Multibinder.newSetBinder(binder, LinkMoveBuilderCallback.class);
}
@Override
public void configure(Binder binder) {
// init collections
contributeBuildCallback(binder);
}
@Provides
public LmRuntime createLinkMoveRuntime(ConfigurationFactory configFactory,
Injector injector,
ServerRuntime targetRuntime,
Set buildCallbacks) {
return configFactory
.config(LinkMoveFactory.class, configPrefix)
.createLinkMove(injector, targetRuntime, buildCallbacks);
}
}