Class InjectionPoint


  • public final class InjectionPoint
    extends java.lang.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 Detail

      • getMember

        public java.lang.reflect.Member getMember()
        Returns the injected constructor, field, or method.
      • getDependencies

        public java.util.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​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.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​(java.lang.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 java.util.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 java.util.Set<InjectionPoint> forStaticMethodsAndFields​(java.lang.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 java.util.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 java.util.Set<InjectionPoint> forInstanceMethodsAndFields​(java.lang.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.