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()); }
依存オブジェクトのみが、それらが属するインジェクションポイントに関する情報を取得できます。
修飾子と型 | メソッドと説明 |
---|---|
Annotated | getAnnotated() インジェクションポイントが注入されたフィールドであるか、コンストラクター / メソッドパラメーターであるかに応じて、 AnnotatedField または AnnotatedParameter のインスタンスを取得します。 |
Bean<?> | getBean() インジェクションポイントを定義する Bean を表す Bean オブジェクトを取得します。 |
MemberSE | getMember() フィールドインジェクションの場合は Field SE オブジェクト、メソッドパラメーターインジェクションの場合は Method SE オブジェクト、コンストラクターパラメーターインジェクションの場合は Constructor SE オブジェクトを取得します。 |
SetSE<AnnotationSE> | getQualifiers() インジェクションポイントに必要な修飾子を取得します。 |
TypeSE | getType() 必要な型のインジェクションポイントを取得します。 |
boolean | isDelegate() インジェクションポイントがデコレータデリゲートインジェクションポイントであるかどうかを判別します。 |
boolean | isTransient() 注入が一時的なフィールドであるかどうかを判別します。 |
TypeSE getType()
SetSE<AnnotationSE> getQualifiers()
Bean<?> getBean()
Bean
オブジェクトを取得します。インジェクションポイントが Bean に属していない場合は、null 値を返します。Bean
オブジェクト。インジェクションポイントが Bean に属していない場合は nullMemberSE getMember()
Field
SE オブジェクト、メソッドパラメーターインジェクションの場合は Method
SE オブジェクト、コンストラクターパラメーターインジェクションの場合は Constructor
SE オブジェクトを取得します。Annotated getAnnotated()
AnnotatedField
または AnnotatedParameter
のインスタンスを取得します。AnnotatedField
または AnnotatedParameter
boolean isDelegate()
true
、それ以外の場合は false
boolean isTransient()
true
、それ以外の場合は false
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.