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

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

package com.google.inject.spi;

import com.google.inject.Key;
import com.google.inject.Provides;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

/**
 * An {@literal @}{@link Provides} binding or binding produced by a
 * {@link ModuleAnnotatedMethodScanner}.
 *
 */
public interface ProvidesMethodBinding extends HasDependencies {

    /**
     * Returns the method this binding uses.
     */
    Method getMethod();

    /**
     * Returns the instance of the object the method is defined in.
     */
    Object getEnclosingInstance();

    /**
     * Returns the key of the binding.
     */
    Key getKey();

    /**
     * Returns the annotation that caused this binding to be created. For {@code @Provides} methods,
     * this is an instance of the {@code @Provides} annotation. For bindings from
     * {@link ModuleAnnotatedMethodScanner}, this is the annotation that caused the scanner to produce
     * the binding.
     */
    Annotation getAnnotation();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy