All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy