インターフェース BeanContainer
- 既知のすべてのサブインターフェース:
BeanManager,ELAwareBeanManager
BeanContainer は、すべての CDI 環境で移植可能な機能を含む BeanManager のスーパークラスです。
Bean のコンテキスト参照を取得するための操作と、CDI アプリケーションに使用される他の多くの操作を提供します。
Bean は、次のように挿入することで BeanContainer のインスタンスを取得できます。
@Inject BeanContainer container;
- 導入:
- 4.0
- 作成者:
- Matej Novotny
方法の概要
修飾子と型メソッド説明<T> CreationalContext<T>createCreationalContext(Contextual<T> contextual) 指定されたコンテキスト型、または非コンテキストオブジェクトのCreationalContextのインスタンスを取得します。Bean インスタンスにアクセスするためのInstanceオブジェクトを取得します。getBeans(TypeSE beanType, AnnotationSE... qualifiers) 指定された必要な型と修飾子を持ち、BeanManager/BeanContainerが注入されたクラスを含むモジュールまたはライブラリで注入できる Bean のセットを返します。Jakarta EE 環境では、JNDI 環境名前空間からの Jakarta EE コンポーネント型安全解決の規則に従って、BeanManager/BeanContainerが取得されました。与えられた EL 名を持ち、BeanManager/BeanContainerが注入されたクラスを含むモジュールまたはライブラリで注入可能な Bean の集合、あるいは Jakarta EE 環境では、BeanManager/BeanContainerが得られた JNDI 環境名前空間の Jakarta EE コンポーネントを EL 名解決規則に従い返します。getContext(ClassSE<? extends AnnotationSE> scopeType) 指定されたスコープのアクティブなコンテキストオブジェクトを取得します。getContexts(ClassSE<? extends AnnotationSE> scopeType) 指定されたスコープのアクティブおよび非アクティブのすべてのコンテキストオブジェクトを取得します。getEvent()指定された型java.lang.Objectおよび指定された修飾子@Defaultを持つイベントのインスタンスを返します。Event組み込み Bean 要件を注入せずに、型安全な同期または非同期のイベント起動を可能にします。getReference(Bean<?> bean, TypeSE beanType, CreationalContext<?> ctx) Bean の特定の Bean および特定の Bean 型のコンテキスト参照を取得します。booleanisInterceptorBinding(ClassSE<? extends AnnotationSE> annotationType) 指定されたアノテーション型をテストして、それがインターセプターバインディング型であるかどうかを判断します。booleanisMatchingBean(SetSE<TypeSE> beanTypes, SetSE<AnnotationSE> beanQualifiers, TypeSE requiredType, SetSE<AnnotationSE> requiredQualifiers) 指定された Bean 型と修飾子を持つ Bean が、指定された必須型と必須修飾子を持つインジェクションポイントに割り当て可能な場合はtrueを返し、そうでない場合はfalseを返します。booleanisMatchingEvent(TypeSE specifiedType, SetSE<AnnotationSE> specifiedQualifiers, TypeSE observedEventType, SetSE<AnnotationSE> observedEventQualifiers) 指定された型と指定された修飾子を持つイベントが、指定された観測イベント型と観測イベント修飾子を持つオブザーバーメソッドと一致する場合はtrueを返し、それ以外の場合はfalseを返します。booleanisNormalScope(ClassSE<? extends AnnotationSE> annotationType) 指定されたアノテーション型をテストして、それが通常のスコープ型であるかどうかを判断します。booleanisQualifier(ClassSE<? extends AnnotationSE> annotationType) 指定されたアノテーション型をテストして、それが修飾子型であるかどうかを判別します。booleanisScope(ClassSE<? extends AnnotationSE> annotationType) 指定されたアノテーション型をテストして、それがスコープ型であるかどうかを判断します。booleanisStereotype(ClassSE<? extends AnnotationSE> annotationType) 指定されたアノテーション型をテストして、それがステレオタイプであるかどうかを判別します。<X> Bean<? extends X>あいまいな依存関係解決ルールを Bean のセットに適用します。ListSE<Interceptor<?>>resolveInterceptors(InterceptionType type, AnnotationSE... interceptorBindings) インターセプターバインディングのセットとインターセプションの型に対して有効なインターセプターの順序付きリストを返します。これらのインターセプターは、BeanManager/BeanContainerが注入されたクラスを含むモジュールまたはライブラリ、または Jakarta EE 環境では、BeanManager/BeanContainerが取得された JNDI 環境名前空間を持つ Jakarta EE コンポーネントで有効になっています。<T> SetSE<ObserverMethod<? super T>>resolveObserverMethods(T event, AnnotationSE... qualifiers) イベントのオブザーバーメソッドの順序付けられたセットを返します。
方法の詳細
getReference
Bean の特定の Bean および特定の Bean 型のコンテキスト参照を取得します。
- パラメーター:
bean- Bean を表すBeanオブジェクトbeanType- 返されるクライアントプロキシによって実装する必要がある Bean 型ctx- 作成されたスコープDependentのオブジェクトを破棄するために使用できるCreationalContext- 戻り値:
- Bean を表すコンテキスト参照
- 例外:
IllegalArgumentExceptionSE- 指定された型が指定された Bean の Bean 型でない場合IllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterDeploymentValidationイベントが発生する前。
createCreationalContext
指定されたコンテキスト型、または非コンテキストオブジェクトのCreationalContextのインスタンスを取得します。- 型パラメーター:
T- インスタンスの型- パラメーター:
contextual-Contextual、または非コンテキストオブジェクトの場合は null 値- 戻り値:
- 新しい
CreationalContext
getBeans
指定された必要な型と修飾子を持ち、BeanManager/BeanContainerが注入されたクラス、または Jakarta EE 環境の場合は JNDI 環境名前空間からの Jakarta EE コンポーネントを含むモジュールまたはライブラリに注入できる Bean のセットを返します。型安全解決の規則に従って、BeanManager/BeanContainerが取得されました。修飾子が指定されていない場合は、デフォルトの修飾子が使用されます。AfterBeanDiscoveryイベントオブザーバーの呼び出し中に呼び出された場合、このメソッドはAfterBeanDiscoveryイベントが発生する前にコンテナーによって検出された Bean のみを返すことに注意してください。- パラメーター:
beanType- 必要な Bean 型qualifiers- 必要な修飾子- 戻り値:
- 結果として得られる Bean のセット
- 例外:
IllegalArgumentExceptionSE- 指定された型が型変数を表す場合IllegalArgumentExceptionSE- 同じ非反復修飾子型の 2 つのインスタンスが指定されている場合IllegalArgumentExceptionSE- 修飾子型ではないアノテーションのインスタンスが指定された場合IllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterBeanDiscoveryイベントが発生する前。
getBeans
与えられた EL 名を持ち、BeanManager/BeanContainerが注入されたクラスを含むモジュールまたはライブラリで注入可能な Bean の集合、あるいは Jakarta EE 環境では、BeanManager/BeanContainerが得られた JNDI 環境名前空間の Jakarta EE コンポーネントを EL 名解決規則に従い返します。AfterBeanDiscoveryイベントオブザーバーの呼び出し中に呼び出された場合、このメソッドはAfterBeanDiscoveryイベントが発生する前にコンテナーによって検出された Bean のみを返すことに注意してください。- パラメーター:
name- EL 名- 戻り値:
- 結果として得られる Bean のセット
- 例外:
IllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterBeanDiscoveryイベントが発生する前。
resolve
あいまいな依存関係解決ルールを Bean のセットに適用します。AfterBeanDiscoveryイベントオブザーバーの呼び出し中に呼び出された場合、このメソッドはAfterBeanDiscoveryイベントが発生する前にコンテナーによって検出された Bean のみを返すことに注意してください。- 型パラメーター:
X- Bean の一般的な型- パラメーター:
beans- 指定された型の Bean のセット- 戻り値:
- 解決された Bean、または null または空のセットが渡された場合は null
- 例外:
AmbiguousResolutionException- あいまいな依存関係解決ルールが失敗した場合IllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterBeanDiscoveryイベントが発生する前。
resolveObserverMethods
イベントのオブザーバーメソッドの順序付けられたセットを返します。AfterBeanDiscoveryイベントオブザーバーの呼び出し中に呼び出された場合、このメソッドはAfterBeanDiscoveryイベントが発生する前にコンテナーによって検出されたオブザーバーのみを返すことに注意してください。- 型パラメーター:
T- イベントの型- パラメーター:
event- イベントオブジェクトqualifiers- イベント修飾子- 戻り値:
- 結果として得られるオブザーバーメソッドのセット
- 例外:
IllegalArgumentExceptionSE- イベントオブジェクトの実行時型に型変数が含まれる場合IllegalArgumentExceptionSE- 同じ非反復修飾子型の 2 つのインスタンスが指定されている場合IllegalArgumentExceptionSE- 修飾子型ではないアノテーションのインスタンスが指定された場合IllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterBeanDiscoveryイベントが発生する前。
resolveInterceptors
ListSE<Interceptor<?>> resolveInterceptors(InterceptionType type, AnnotationSE... interceptorBindings) インターセプターバインディングのセットとインターセプションの型に対して有効なインターセプターの順序付きリストを返します。これらのインターセプターは、BeanManager/BeanContainerが注入されたクラスを含むモジュールまたはライブラリ、または Jakarta EE 環境では、BeanManager/BeanContainerが取得された JNDI 環境名前空間を持つ Jakarta EE コンポーネントで有効になっています。AfterBeanDiscoveryイベントオブザーバーの呼び出し中に呼び出された場合、このメソッドは、AfterBeanDiscoveryイベントが発生する前にコンテナーによって検出されたインターセプターのみを返すことに注意してください。- パラメーター:
type- 遮断の型interceptorBindings- インターセプターのバインディング- 戻り値:
- 結果として得られるインターセプターのセット
- 例外:
IllegalArgumentExceptionSE- インターセプターバインディング型が指定されていない場合IllegalArgumentExceptionSE- 同じインターセプターバインディング型の 2 つのインスタンスが指定されている場合IllegalArgumentExceptionSE- インターセプターバインディング型ではないアノテーションのインスタンスが指定された場合IllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterBeanDiscoveryイベントが発生する前。
isScope
指定されたアノテーション型をテストして、それがスコープ型であるかどうかを判断します。- パラメーター:
annotationType- アノテーション型- 戻り値:
- アノテーション型がスコープ型の場合は true
isNormalScope
指定されたアノテーション型をテストして、それが通常のスコープ型であるかどうかを判断します。- パラメーター:
annotationType- アノテーション型- 戻り値:
- アノテーション型が通常のスコープ型の場合は
true
isQualifier
指定されたアノテーション型をテストして、それが修飾子型であるかどうかを判別します。- パラメーター:
annotationType- アノテーション型- 戻り値:
- アノテーション型が修飾子型の場合は
true
isStereotype
指定されたアノテーション型をテストして、それがステレオタイプであるかどうかを判別します。- パラメーター:
annotationType- アノテーション型- 戻り値:
- アノテーション型がステレオタイプの場合は
true
isInterceptorBinding
指定されたアノテーション型をテストして、それがインターセプターバインディング型であるかどうかを判断します。- パラメーター:
annotationType- テストするアノテーション- 戻り値:
- アノテーション型がインターセプターバインディング型の場合は
true
getContext
指定されたスコープのアクティブなコンテキストオブジェクトを取得します。- パラメーター:
scopeType- 範囲- 戻り値:
- コンテキストオブジェクト
- 例外:
ContextNotActiveException- 指定されたスコープのアクティブなコンテキストオブジェクトがない場合IllegalArgumentExceptionSE- 指定されたスコープに複数のアクティブなコンテキストオブジェクトがある場合
getContexts
指定されたスコープのアクティブおよび非アクティブのすべてのコンテキストオブジェクトを取得します。- パラメーター:
scopeType- スコープ ;nullであってはなりません- 戻り値:
- コンテキストオブジェクトの不変コレクション。決して
nullではありませんが、空である可能性があります
getEvent
指定された型java.lang.Objectおよび指定された修飾子@Defaultを持つイベントのインスタンスを返します。Event組み込み Bean 要件を注入せずに、型安全な同期または非同期のイベント起動を可能にします。- 戻り値:
- イベント・型が
Objectおよび修飾子@Defaultである新しいEventオブジェクト - 導入:
- 2.0
createInstance
Bean インスタンスにアクセスするためのInstanceオブジェクトを取得します。返された
Instanceオブジェクトは、BeanManager/BeanContainerが注入されたクラスを含むモジュールまたはライブラリ、あるいは Jakarta EE 環境では、型安全解決の規則に従ってBeanContainerが得られた JNDI 環境名前空間の Jakarta EE コンポーネントに注入可能な beans インスタンスにのみアクセスすることができます。この
Instanceで取得された依存スコープ Bean のインスタンスは、Instance.destroy(Object)を呼び出して明示的に破棄する必要があります。修飾子が
Instance.select(java.lang.annotation.Annotation...)メソッドに渡されない場合、@Default修飾子が想定されます。- 戻り値:
- Bean インスタンスをリクエストする
Instanceオブジェクト - 例外:
IllegalStateExceptionSE- アプリケーションの初期化中に呼び出された場合、AfterDeploymentValidationイベントが発生する前。- 導入:
- 2.0
isMatchingBean
boolean isMatchingBean(SetSE<TypeSE> beanTypes, SetSE<AnnotationSE> beanQualifiers, TypeSE requiredType, SetSE<AnnotationSE> requiredQualifiers) 指定された Bean 型と修飾子を持つ Bean が、指定された必須型と必須修飾子を持つインジェクションポイントに割り当て可能な場合はtrueを返し、そうでない場合はfalseを返します。Bean および型安全解決の仕様に従って、
beanTypesのセットには常にjava.lang.Objectが含まれると見なされます。beanTypes内の有効な Bean 型ではない型は無視されます。beanQualifiersのセットには常に@Anyが含まれると見なされ、@Anyと@Named以外の修飾子が含まれていない場合は@Defaultも含まれます。requiredQualifiersのセットが空の場合は、@Defaultが含まれると見なされます。引数のいずれかが
nullである場合、またはbeanQualifiersまたはrequiredQualifiersのいずれかが修飾子アノテーションでない場合は、IllegalArgumentExceptionSE をスローします。- パラメーター:
beanTypes- Bean Bean の型。nullであってはなりませんbeanQualifiers- Bean の修飾子。nullであってはなりませんrequiredType- インジェクションポイントの必須型。nullであってはなりませんrequiredQualifiers- インジェクションポイントの必須修飾子。nullであってはなりません- 戻り値:
- 指定された Bean 型と修飾子を持つ Bean が、指定された必須型と必須修飾子を持つインジェクションポイントに割り当て可能な場合は
true、そうでない場合はfalse
isMatchingEvent
boolean isMatchingEvent(TypeSE specifiedType, SetSE<AnnotationSE> specifiedQualifiers, TypeSE observedEventType, SetSE<AnnotationSE> observedEventQualifiers) 指定された型と指定された修飾子を持つイベントが、指定された観測イベント型と観測イベント修飾子を持つオブザーバーメソッドと一致する場合はtrueを返し、それ以外の場合はfalseを返します。オブザーバー解決の目的で、
specifiedTypeはイベント型として直接使用され (この API にはイベントオブジェクトがないため)、specifiedQualifiersはイベント修飾子として使用されます。イベントとオブザーバー解決の仕様に従って、イベント修飾子のセットには常に@Anyが含まれると見なされます。さらに、specifiedQualifiersの空のセットは、@Defaultを含むobservedEventQualifiersのセットと一致すると見なされます。引数のいずれかが
nullである場合、specifiedTypeに型変数が含まれている場合、またはspecifiedQualifiersまたはobservedEventQualifiersのいずれかが修飾子アノテーションでない場合は、IllegalArgumentExceptionSE をスローします。- パラメーター:
specifiedType- 指定されたイベントの種類。nullであってはなりませんspecifiedQualifiers- イベントの指定された修飾子。nullであってはなりませんobservedEventType- オブザーバーメソッドの観測イベント型。nullであってはなりませんobservedEventQualifiers- オブザーバーメソッド上の観測イベント修飾子。nullであってはなりません- 戻り値:
- 指定された型と修飾子を持つイベントオブジェクトが、指定された観測イベント型と観測イベント修飾子を持つオブザーバーメソッドに通知する場合は
true、そうでない場合はfalse