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!
/**
 * Copyright (C) 2010 Daniel Manzke 
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
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