org.elasticsearch.common.inject.spi
Class InjectionPoint

java.lang.Object
  extended by org.elasticsearch.common.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:
crazybob@google.com (Bob Lee)

Method Summary
 boolean equals(Object o)
           
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.
 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.
 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.


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

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 © 2009-2012. All Rights Reserved.