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

de.devsurf.injection.guice.scanner.reflections.example.startupmodule.ExampleStartupModule Maven / Gradle / Ivy

The newest version!
package de.devsurf.injection.guice.scanner.reflections.example.startupmodule;

import com.google.inject.CreationException;
import com.google.inject.multibindings.Multibinder;

import de.devsurf.injection.guice.scanner.AnnotationListener;
import de.devsurf.injection.guice.scanner.ClasspathScanner;
import de.devsurf.injection.guice.scanner.StartupModule;
import de.devsurf.injection.guice.scanner.annotations.AutoBind;
import de.devsurf.injection.guice.scanner.annotations.GuiceModule;
import de.devsurf.injection.guice.scanner.annotations.AutoBind.AutoBindListener;

/**
 * The {@link ExampleStartupModule} overwrites the
 * bindAnnotationListeners-Method, because our Example has several Classes
 * annotated with {@link AutoBind} and {@link GuiceModule}. Due the fact, that
 * our GuiceModule binds the {@link Example}-Interface to the
 * {@link ExampleImpl}-Class and the {@link AutoBindListener} too, we would get
 * a {@link CreationException}.
 * 
 * @author Daniel Manzke
 * 
 */
public class ExampleStartupModule extends StartupModule {

    public ExampleStartupModule(Class scanner, String... packages) {
	super(scanner, packages);
    }

    @Override
    protected void bindAnnotationListeners() {
	Multibinder listeners = Multibinder.newSetBinder(binder(),
	    AnnotationListener.class);
	listeners.addBinding().to(GuiceModule.GuiceModuleListener.class);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy