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();
}