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

com.google.inject.spi.ModuleAnnotatedMethodScannerBinding Maven / Gradle / Ivy

package com.google.inject.spi;

import com.google.inject.Binder;
import com.google.inject.internal.Errors;
import com.google.inject.internal.Messages;

import static com.google.common.base.Preconditions.checkNotNull;

/**
 * Represents a call to {@link Binder#scanModulesForAnnotatedMethods} in a module.
 */
public final class ModuleAnnotatedMethodScannerBinding implements Element {
    private final Object source;
    private final ModuleAnnotatedMethodScanner scanner;

    public ModuleAnnotatedMethodScannerBinding(Object source, ModuleAnnotatedMethodScanner scanner) {
        this.source = checkNotNull(source, "source");
        this.scanner = checkNotNull(scanner, "scanner");
    }

    public Object getSource() {
        return source;
    }

    public ModuleAnnotatedMethodScanner getScanner() {
        return scanner;
    }

    public  T acceptVisitor(ElementVisitor visitor) {
        return visitor.visit(this);
    }

    public void applyTo(Binder binder) {
        binder.withSource(getSource()).scanModulesForAnnotatedMethods(scanner);
    }

    @Override
    public String toString() {
        return scanner + " which scans for " + scanner.annotationClasses()
                + " (bound at " + Messages.convert(source) + ")";
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy