Class InjectionPoint

java.lang.Object
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
  • Method Details

    • 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.