com.google.inject.spi
Class InjectionPoint

java.lang.Object
  extended by com.google.inject.spi.InjectionPoint

public final class InjectionPoint
extends Object

A constructor, field or method that can receive injections. Typically this is a member with the @Inject annotation. For non-private, no argument constructors, the member may omit the annotation.

Since:
2.0
Author:
[email protected] (Bob Lee)

Method Summary
 boolean equals(Object o)
           
static
<T> InjectionPoint
forConstructor(Constructor<T> constructor)
          Returns a new injection point for the specified constructor.
static
<T> InjectionPoint
forConstructor(Constructor<T> constructor, TypeLiteral<? extends T> type)
          Returns a new injection point for the specified constructor of type.
static InjectionPoint forConstructorOf(Class<?> type)
          Returns a new injection point for the injectable constructor of type.
static InjectionPoint forConstructorOf(TypeLiteral<?> type)
          Returns a new injection point for the injectable constructor of type.
static Set<InjectionPoint> forInstanceMethodsAndFields(Class<?> type)
          Returns all instance method and field injection points on type.
static Set<InjectionPoint> forInstanceMethodsAndFields(TypeLiteral<?> type)
          Returns all instance method and field injection points on type.
static Set<InjectionPoint> forStaticMethodsAndFields(Class<?> type)
          Returns all static method and field injection points on type.
static Set<InjectionPoint> forStaticMethodsAndFields(TypeLiteral<?> type)
          Returns all static method and field injection points on type.
 TypeLiteral<?> getDeclaringType()
          Returns the generic type that defines this injection point.
 List<Dependency<?>> getDependencies()
          Returns the dependencies for this injection point.
 Member getMember()
          Returns the injected constructor, field, or method.
 int hashCode()
           
 boolean isOptional()
          Returns true if this injection point shall be skipped if the injector cannot resolve bindings for all required dependencies.
 boolean isToolable()
          Returns true if the element is annotated with @Toolable.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

getMember

public Member getMember()
Returns the injected constructor, field, or method.


getDependencies

public List<Dependency<?>> getDependencies()
Returns the dependencies for this injection point. If the injection point is for a method or constructor, the dependencies will correspond to that member's parameters. Field injection points always have a single dependency for the field itself.

Returns:
a possibly-empty list

isOptional

public boolean isOptional()
Returns true if this injection point shall be skipped if the injector cannot resolve bindings for all required dependencies. Both explicit bindings (as specified in a module), and implicit bindings (@ImplementedBy, default constructors etc.) may be used to satisfy optional injection points.


isToolable

public boolean isToolable()
Returns true if the element is annotated with @Toolable.

Since:
3.0

getDeclaringType

public TypeLiteral<?> getDeclaringType()
Returns the generic type that defines this injection point. If the member exists on a parameterized type, the result will include more type information than the member's raw declaring class.

Since:
3.0

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object

forConstructor

public static <T> InjectionPoint forConstructor(Constructor<T> constructor)
Returns a new injection point for the specified constructor. If the declaring type of constructor is parameterized (such as List<T>), prefer the overload that includes a type literal.

Parameters:
constructor - any single constructor present on type.
Since:
3.0

forConstructor

public static <T> InjectionPoint forConstructor(Constructor<T> constructor,
                                                TypeLiteral<? extends T> type)
Returns a new injection point for the specified constructor of type.

Parameters:
constructor - any single constructor present on type.
type - the concrete type that defines constructor.
Since:
3.0

forConstructorOf

public static InjectionPoint forConstructorOf(TypeLiteral<?> type)
Returns a new injection point for the injectable constructor of type.

Parameters:
type - a concrete type with exactly one constructor annotated @Inject, or a no-arguments constructor that is not private.
Throws:
ConfigurationException - if there is no injectable constructor, more than one injectable constructor, or if parameters of the injectable constructor are malformed, such as a parameter with multiple binding annotations.

forConstructorOf

public static InjectionPoint forConstructorOf(Class<?> type)
Returns a new injection point for the injectable constructor of type.

Parameters:
type - a concrete type with exactly one constructor annotated @Inject, or a no-arguments constructor that is not private.
Throws:
ConfigurationException - if there is no injectable constructor, more than one injectable constructor, or if parameters of the injectable constructor are malformed, such as a parameter with multiple binding annotations.

forStaticMethodsAndFields

public static Set<InjectionPoint> forStaticMethodsAndFields(TypeLiteral<?> type)
Returns all static method and field injection points on type.

Returns:
a possibly empty set of injection points. The set has a specified iteration order. All fields are returned and then all methods. Within the fields, supertype fields are returned before subtype fields. Similarly, supertype methods are returned before subtype methods.
Throws:
ConfigurationException - if there is a malformed injection point on type, such as a field with multiple binding annotations. The exception's partial value is a Set<InjectionPoint> of the valid injection points.

forStaticMethodsAndFields

public static Set<InjectionPoint> forStaticMethodsAndFields(Class<?> type)
Returns all static method and field injection points on type.

Returns:
a possibly empty set of injection points. The set has a specified iteration order. All fields are returned and then all methods. Within the fields, supertype fields are returned before subtype fields. Similarly, supertype methods are returned before subtype methods.
Throws:
ConfigurationException - if there is a malformed injection point on type, such as a field with multiple binding annotations. The exception's partial value is a Set<InjectionPoint> of the valid injection points.

forInstanceMethodsAndFields

public static Set<InjectionPoint> forInstanceMethodsAndFields(TypeLiteral<?> type)
Returns all instance method and field injection points on type.

Returns:
a possibly empty set of injection points. The set has a specified iteration order. All fields are returned and then all methods. Within the fields, supertype fields are returned before subtype fields. Similarly, supertype methods are returned before subtype methods.
Throws:
ConfigurationException - if there is a malformed injection point on type, such as a field with multiple binding annotations. The exception's partial value is a Set<InjectionPoint> of the valid injection points.

forInstanceMethodsAndFields

public static Set<InjectionPoint> forInstanceMethodsAndFields(Class<?> type)
Returns all instance method and field injection points on type.

Returns:
a possibly empty set of injection points. The set has a specified iteration order. All fields are returned and then all methods. Within the fields, supertype fields are returned before subtype fields. Similarly, supertype methods are returned before subtype methods.
Throws:
ConfigurationException - if there is a malformed injection point on type, such as a field with multiple binding annotations. The exception's partial value is a Set<InjectionPoint> of the valid injection points.


Copyright © 2006-2011 Google, Inc.. All Rights Reserved.