インターフェース InjectionPoint


public interface InjectionPoint

インジェクションポイントに関するメタデータへのアクセスを提供します。Bean コンストラクターイニシャライザーメソッドプロデューサーメソッドディスポーザメソッド、またはオブザーバメソッドの 挿入されたフィールドまたはパラメーターを表す場合があります。

インジェクションポイントが取得された動的に選択された参照である場合、取得されたメタデータは Instance のインジェクションポイントを反映し、必要な型と Instance.select() によって定義された追加の必要な修飾子があります。

場合によっては、スコープ @Dependent の Bean が、それが属するオブジェクトに関連するメタデータにアクセスする必要があります。Bean は、Bean が注入されたインジェクションポイントを表す InjectionPoint を注入することができます。

例: 次のプロデューサーメソッドは、注入可能な Logger を作成します。Logger のログカテゴリは、それが挿入されるオブジェクトのクラスによって異なります。

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

依存オブジェクトのみが、それらが属するインジェクションポイントに関する情報を取得できます。

作成者:
Gavin King, Pete Muir
  • 方法の概要

    修飾子と型
    メソッド
    説明
    インジェクションポイントが注入されたフィールドであるか、コンストラクター / メソッドパラメーターであるかに応じて、AnnotatedField または AnnotatedParameter のインスタンスを取得します。
    Bean<?>
    インジェクションポイントを定義する Bean を表す Bean オブジェクトを取得します。
    フィールドインジェクションの場合は FieldSE オブジェクト、メソッドパラメーターインジェクションの場合は MethodSE オブジェクト、コンストラクターパラメーターインジェクションの場合は ConstructorSE オブジェクトを取得します。
    インジェクションポイントに必要な修飾子を取得します。
    必要な型のインジェクションポイントを取得します。
    boolean
    インジェクションポイントがデコレータデリゲートインジェクションポイントであるかどうかを判別します。
    boolean
    注入が一時的なフィールドであるかどうかを判別します。
  • 方法の詳細

    • getType

      TypeSE getType()
      必要な型のインジェクションポイントを取得します。
      戻り値:
      必要な型
    • getQualifiers

      SetSE<AnnotationSE> getQualifiers()
      インジェクションポイントに必要な修飾子を取得します。
      戻り値:
      必要な修飾子
    • getBean

      Bean<?> getBean()
      インジェクションポイントを定義する Bean を表す Bean オブジェクトを取得します。インジェクションポイントが Bean に属していない場合は、null 値を返します。
      戻り値:
      インジェクションポイントを定義する Bean を表す Bean オブジェクト。インジェクションポイントが Bean に属していない場合は null
    • getMember

      MemberSE getMember()
      フィールドインジェクションの場合は FieldSE オブジェクト、メソッドパラメーターインジェクションの場合は MethodSE オブジェクト、コンストラクターパラメーターインジェクションの場合は ConstructorSE オブジェクトを取得します。
      戻り値:
      メンバー
    • getAnnotated

      Annotated getAnnotated()
      インジェクションポイントが注入されたフィールドであるか、コンストラクター / メソッドパラメーターであるかに応じて、AnnotatedField または AnnotatedParameter のインスタンスを取得します。
      戻り値:
      AnnotatedField または AnnotatedParameter
    • isDelegate

      boolean isDelegate()
      インジェクションポイントがデコレータデリゲートインジェクションポイントであるかどうかを判別します。
      戻り値:
      インジェクションポイントがデコレータデリゲートインジェクションポイントの場合は true、それ以外の場合は false 
    • isTransient

      boolean isTransient()
      注入が一時的なフィールドであるかどうかを判別します。
      戻り値:
      インジェクションポイントが過渡場の場合は true、それ以外の場合は false