インターフェース 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<?>getBean()インジェクションポイントを定義する Bean を表すBeanオブジェクトを取得します。フィールドインジェクションの場合はFieldSE オブジェクト、メソッドパラメーターインジェクションの場合はMethodSE オブジェクト、コンストラクターパラメーターインジェクションの場合はConstructorSE オブジェクトを取得します。インジェクションポイントに必要な修飾子を取得します。getType()必要な型のインジェクションポイントを取得します。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