InjectionPoint
Date: 2015-09-11

javax.enterprise.inject.spi

## Interface InjectionPoint

-     public interface InjectionPoint

  Provides access to metadata about an injection point. May represent an injected field or a parameter of a bean constructor, initializer method, producer method, disposer method or observer method.

  Occasionally, a bean with scope `@Dependent` needs to access metadata relating to the object to which it belongs. The bean may inject an `InjectionPoint` representing the injection point into which the bean was injected.

  For example, the following producer method creates injectable `Logger`s. The log category of a `Logger` depends upon the class of the object into which it is injected.

       @Produces
       Logger createLogger(InjectionPoint injectionPoint) {
          return Logger.getLogger( injectionPoint.getMember().getDeclaringClass().getName() );
       }

  Only dependent objects, may obtain information about the injection point to which they belong.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Annotated` | `getAnnotated()` Obtain an instance of `AnnotatedField` or `AnnotatedParameter`, depending upon whether the injection point is an injected field or a constructor/method parameter.
    `Bean<?>` | `getBean()` Get the `Bean` object representing the bean that defines the injection point.
    `java.lang.reflect.Member` | `getMember()` Get the `Field` object in the case of field injection, the `Method` object in the case of method parameter injection or the `Constructor` object in the case of constructor parameter injection.
    `java.util.Set<java.lang.annotation.Annotation>` | `getQualifiers()` Get the required qualifiers of the injection point.
    `java.lang.reflect.Type` | `getType()` Get the required type of injection point.
    `boolean` | `isDelegate()` Determines if the injection point is a decorator delegate injection point.
    `boolean` | `isTransient()` Determines if the injection is a transient field.

- - ### Method Detail

    - #### getType

          java.lang.reflect.Type getType()

      Get the required type of injection point.
      Returns:
        the required type

    - #### getQualifiers

          java.util.Set<java.lang.annotation.Annotation> getQualifiers()

      Get the required qualifiers of the injection point.
      Returns:
        the required qualifiers

    - #### getBean

          Bean<?> getBean()

      Get the `Bean` object representing the bean that defines the injection point. If the injection point does not belong to a bean, return a null value.
      Returns:
        the `Bean` object representing bean that defines the injection point, of null if the injection point does not belong to a bean

    - #### getMember

          java.lang.reflect.Member getMember()

      Get the `Field` object in the case of field injection, the `Method` object in the case of method parameter injection or the `Constructor` object in the case of constructor parameter injection.
      Returns:
        the member

    - #### getAnnotated

          Annotated getAnnotated()

      Obtain an instance of `AnnotatedField` or `AnnotatedParameter`, depending upon whether the injection point is an injected field or a constructor/method parameter.
      Returns:
        an `AnnotatedField` or `AnnotatedParameter`

    - #### isDelegate

          boolean isDelegate()

      Determines if the injection point is a decorator delegate injection point.
      Returns:
        `true` if the injection point is a decorator delegate injection point, and `false` otherwise

    - #### isTransient

          boolean isTransient()

      Determines if the injection is a transient field.
      Returns:
        `true` if the injection point is a transient field, and `false` otherwise