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

io.bootique.linkrest.LinkRestModuleExtender Maven / Gradle / Ivy

package io.bootique.linkrest;

import com.google.inject.Binder;
import com.google.inject.multibindings.Multibinder;
import com.nhl.link.rest.runtime.adapter.LinkRestAdapter;
import io.bootique.ModuleExtender;

/**
 * @since 0.15
 */
public class LinkRestModuleExtender extends ModuleExtender {

    private Multibinder adapters;

    public LinkRestModuleExtender(Binder binder) {
        super(binder);
    }

    @Override
    public LinkRestModuleExtender initAllExtensions() {
        contributeAdapters();
        return this;
    }

    public LinkRestModuleExtender addAdapter(LinkRestAdapter adapter) {
        contributeAdapters().addBinding().toInstance(adapter);
        return this;
    }

    public LinkRestModuleExtender addAdapter(Class adapterType) {
        contributeAdapters().addBinding().to(adapterType);
        return this;
    }

    protected Multibinder contributeAdapters() {
        return adapters != null ? adapters : (adapters = newSet(LinkRestAdapter.class));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy