インターフェース BeanManager

すべてのスーパーインターフェース:
BeanContainer
すべての既知のサブインターフェース:
ELAwareBeanManager

public interface BeanManager extends BeanContainer

ポータブル拡張機能がコンテナーと直接やり取りできるようにします。Bean のコンテキスト参照を取得するための操作と、ポータブル拡張機能を使用するための他の多くの操作を提供します。

CDI Lite 環境では、アプリケーションは BeanManager を取得できますが、BeanContainer から継承されていないメソッドを呼び出すと、移植性のない動作が発生します。

Bean は、次のように挿入することで BeanManager のインスタンスを取得できます。

 @Inject
 BeanManager manager;
 

Java EE コンポーネントは、java:comp/BeanManager という名前を検索することにより、JNDISE から BeanManager のインスタンスを取得できます。

BeanManager のほとんどの操作は、アプリケーションの実行中にいつでも呼び出すことができます。

ただし、AfterBeanDiscovery イベントが発生する前に、次の操作を呼び出さないでください。

AfterDeploymentValidation イベントが発生する前に、次の操作を呼び出さないでください。

コンテナーが例外をスローします。

作成者:
Gavin King, Pete Muir, Clint Popetz, David Allen, Antoine Sabot-Durand
  • メソッドの詳細

    • getInjectableReference

      ObjectSE getInjectableReference(InjectionPoint ij, CreationalContext<?> ctx)

      特定のインジェクションポイントの注入可能な参照を取得します。

      パラメーター:
      ij - ゴール噴射点
      ctx - 作成されたスコープ Dependent のオブジェクトを破棄するために使用できる CreationalContext
      戻り値:
      注入可能な参照
      例外:
      UnsatisfiedResolutionException - 型安全な解決の結果、依存関係が満たされない場合
      AmbiguousResolutionException - 型安全な解決により、解決できないあいまいな依存関係が発生する
      IllegalStateExceptionSE - アプリケーションの初期化中に呼び出された場合、AfterDeploymentValidation イベントが発生する前。
    • getPassivationCapableBean

      Bean<?> getPassivationCapableBean(StringSE id)
      指定された識別子を持つ PassivationCapable Bean を返します。AfterBeanDiscovery イベントオブザーバーの呼び出し中に呼び出された場合、このメソッドは、AfterBeanDiscovery イベントが発生する前にコンテナーによって検出された Bean のみを返すことに注意してください。
      パラメーター:
      id - 識別子
      戻り値:
      PassivationCapable を実装し、指定された識別子を持つ Bean、そのような Bean がない場合は null 値
      例外:
      IllegalStateExceptionSE - アプリケーションの初期化中に呼び出された場合、AfterBeanDiscovery イベントが発生する前。
    • validate

      void validate(InjectionPoint injectionPoint)
      特定のインジェクションポイントを検証します。AfterBeanDiscovery イベントオブザーバーの呼び出し中に呼び出された場合、このメソッドは、AfterBeanDiscovery イベントが発生する前にコンテナーによって検出されたインジェクションポイントのみを検証することに注意してください。
      パラメーター:
      injectionPoint - 検証するインジェクションポイント
      例外:
      InjectionException - インジェクションポイントに関連付けられているデプロイ問題(たとえば、満たされていない、解決できないあいまいな依存関係)がある場合
      IllegalStateExceptionSE - アプリケーションの初期化中に呼び出された場合、AfterBeanDiscovery イベントが発生する前。
    • resolveDecorators

      ListSE<Decorator<?>> resolveDecorators(SetSE<TypeSE> types, AnnotationSE... qualifiers)
      Bean 型セットと修飾子セットのデコレータの順序付きリストを返します。これらのデコレータは、BeanManager が注入されたクラス、または BeanManager が取得された JNDI 環境名前空間の Java EE コンポーネントを含むモジュールまたはライブラリで有効になっています。AfterBeanDiscovery イベントオブザーバーの呼び出し中に呼び出された場合、このメソッドは、AfterBeanDiscovery イベントが発生する前にコンテナーによって検出されたデコレータのみを返すことに注意してください。
      パラメーター:
      types - 装飾された Bean の Bean 型のセット
      qualifiers - 装飾された Bean によって宣言された修飾子
      戻り値:
      結果として得られるデコレータのセット
      例外:
      IllegalArgumentExceptionSE - Bean 型のセットが空の場合
      IllegalArgumentExceptionSE - バインディング型ではないアノテーションが渡された場合
      IllegalArgumentExceptionSE - 同じバインディング型の 2 つのインスタンスが渡された場合
      IllegalStateExceptionSE - アプリケーションの初期化中に呼び出された場合、AfterBeanDiscovery イベントが発生する前。
    • isPassivatingScope

      boolean isPassivatingScope(ClassSE<? extends AnnotationSE> annotationType)
      指定されたアノテーション型をテストして、それが非活性化スコープ型であるかどうかを判断します。
      パラメーター:
      annotationType - アノテーション型
      戻り値:
      アノテーション型が不動態化スコープ型の場合は true 
    • getInterceptorBindingDefinition

      SetSE<AnnotationSE> getInterceptorBindingDefinition(ClassSE<? extends AnnotationSE> bindingType)
      特定のインターセプターバインディング型のメタアノテーションのセットを取得します。
      パラメーター:
      bindingType - インターセプターバインディング型
      戻り値:
      メタアノテーションのセット
    • getStereotypeDefinition

      SetSE<AnnotationSE> getStereotypeDefinition(ClassSE<? extends AnnotationSE> stereotype)
      特定のステレオタイプのメタアノテーションを取得します。
      パラメーター:
      stereotype - ステレオタイプ
      戻り値:
      メタアノテーションのセット
    • areQualifiersEquivalent

      boolean areQualifiersEquivalent(AnnotationSE qualifier1, AnnotationSE qualifier2)
      Nonbinding でアノテーションが付けられたメンバーを考慮して、2 つの修飾子が型安全な解決の目的で同等と見なされるかどうかを判断します。
      パラメーター:
      qualifier1 - チェックする修飾子
      qualifier2 - チェックする修飾子
      戻り値:
      2 つの修飾子が同等の場合は true、そうでない場合は false
      導入:
      1.1
    • areInterceptorBindingsEquivalent

      boolean areInterceptorBindingsEquivalent(AnnotationSE interceptorBinding1, AnnotationSE interceptorBinding2)
      Nonbinding でアノテーションが付けられたメンバーを考慮して、2 つのインターセプターバインディングが型安全な解決の目的で同等と見なされるかどうかを判断します。
      パラメーター:
      interceptorBinding1 - チェックするインターセプターバインディング
      interceptorBinding2 - チェックするインターセプターバインディング
      戻り値:
      2 つのインターセプターバインディングが同等の場合は true、それ以外の場合は false
      導入:
      1.1
    • getQualifierHashCode

      int getQualifierHashCode(AnnotationSE qualifier)
      アノテーションハッシュコードを決定するための JDK アルゴリズムを使用して、Nonbinding でアノテーションされたメンバーを無視して、修飾子のハッシュコードを決定します。
      パラメーター:
      qualifier - 考慮すべき修飾子
      戻り値:
      予選の hashCode
      導入:
      1.1
    • getInterceptorBindingHashCode

      int getInterceptorBindingHashCode(AnnotationSE interceptorBinding)
      JDK アルゴリズムを使用してアノテーションハッシュコードを決定し、Nonbinding でアノテーションされたメンバーを無視して、インターセプターバインディングのハッシュコードを決定します。
      パラメーター:
      interceptorBinding - 考慮すべきインターセプターバインディング
      戻り値:
      インターセプターバインディングの hashCode
      導入:
      1.1
    • getELResolver

      @DeprecatedSE(since="4.1", forRemoval=true) ELResolver getELResolver()
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      ELAwareBeanManager を使用します。このメソッドは CDI 5.0 で削除されます
      EL 名で Bean を解決する ELResolver を返します。
      戻り値:
      ELResolver
    • wrapExpressionFactory

      @DeprecatedSE(since="4.1", forRemoval=true) ExpressionFactory wrapExpressionFactory(ExpressionFactory expressionFactory)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      ELAwareBeanManager を使用します。このメソッドは CDI 5.0 で削除されます
      MethodExpression および ValueExpression の作成を指定された ExpressionFactory に委譲するラッパー ExpressionFactory を返します。ラッパー ExpressionFactory によって返される MethodExpression または ValueExpression を使用して UnifiedEL 式が評価される場合、コンテナーはスコープ Dependent を持つオブジェクトの破棄を処理します。
      パラメーター:
      expressionFactory - ラップする ExpressionFactory
      戻り値:
      ラップされた ExpressionFactory
    • createAnnotatedType

      <T> AnnotatedType<T> createAnnotatedType(ClassSE<T> type)
      指定されたクラスまたはインターフェースのアノテーションを読み取るために使用できる AnnotatedType を取得します。
      型パラメーター:
      T - クラスまたはインターフェース
      パラメーター:
      type - ClassSE オブジェクト
      戻り値:
      AnnotatedType
    • getInjectionTargetFactory

      <T> InjectionTargetFactory<T> getInjectionTargetFactory(AnnotatedType<T> annotatedType)

      コンテナーが作成した InjectionTarget インスタンスを提供する InjectionTargetFactory の実装。

      このファクトリをラップして、コンテナーで作成されたインジェクションターゲットに動作を追加できます。

      型パラメーター:
      T - 型
      パラメーター:
      annotatedType - 注入ターゲットファクトリを作成するためのアノテーション付き型
      戻り値:
      InjectionTargetFactory
      導入:
      1.1
    • getProducerFactory

      <X> ProducerFactory<X> getProducerFactory(AnnotatedField<? super X> field, Bean<X> declaringBean)

      指定されたフィールドに対してコンテナーが作成した Producer インスタンスを提供する ProducerFactory の実装。

      このファクトリをラップして、コンテナーで作成されたプロデューサーに動作を追加できます。

      型パラメーター:
      X - 宣言型
      パラメーター:
      field - プロデューサーファクトリを作るためのフィールド
      declaringBean - プロデューサーを宣言する Bean。プロデューサーが静的であるか、宣言オブジェクトが非コンテキストである場合、null になる可能性があります
      戻り値:
      フィールドのプロデューサーファクトリ
      導入:
      1.1
    • getProducerFactory

      <X> ProducerFactory<X> getProducerFactory(AnnotatedMethod<? super X> method, Bean<X> declaringBean)

      指定されたメソッドに対してコンテナーが作成した Producer インスタンスを提供する ProducerFactory の実装。

      このファクトリをラップして、コンテナーで作成されたプロデューサーに動作を追加できます。

      型パラメーター:
      X - Bean 型
      パラメーター:
      method - プロデューサーファクトリを作成する方法
      declaringBean - プロデューサーを宣言する Bean。プロデューサーが静的であるか、宣言オブジェクトが非コンテキストである場合、null になる可能性があります
      戻り値:
      メソッドのプロデューサーファクトリ
      導入:
      1.1
    • createBeanAttributes

      <T> BeanAttributes<T> createBeanAttributes(AnnotatedType<T> type)
      指定された AnnotatedTypeBeanAttributes を取得します。コンテナーは、実際の Java クラスの要素によって宣言されたアノテーションと型を無視し、代わりに Annotated インターフェースを介して提供されるメタデータを使用します。
      型パラメーター:
      T - 型
      パラメーター:
      type - AnnotatedType
      戻り値:
      コンテナーが提供する InjectionTarget の実装
      導入:
      1.1
    • createBeanAttributes

      BeanAttributes<?> createBeanAttributes(AnnotatedMember<?> type)
      指定された AnnotatedTypeBeanAttributes を取得します。コンテナーは、実際の Java クラスの要素によって宣言されたアノテーションと型を無視し、代わりに Annotated インターフェースを介して提供されるメタデータを使用します。
      パラメーター:
      type - AnnotatedType
      戻り値:
      コンテナーが提供する InjectionTarget の実装
      導入:
      1.1
    • createBean

      <T> Bean<T> createBean(BeanAttributes<T> attributes, ClassSE<T> beanClass, InjectionTargetFactory<T> injectionTargetFactory)

      指定された BeanAttributes、Bean クラス、InjectionTargetBean を取得します。

      InjectionTarget は、Bean のインスタンスを作成および破棄し、依存性注入とライフサイクルコールバックを実行し、Bean.getInjectionPoints() の戻り値を決定します。InjectionTargetInjectionTargetFactory から取得されます。getInjectionTargetFactory(AnnotatedType) では、InjectionTarget で作成されたコンテナーを使用できます。

      型パラメーター:
      T - 型
      パラメーター:
      attributes - 返された Bean の Bean 型、修飾子、スコープ、名前、ステレオタイプ、BeanAttributes.isAlternative() の戻り値を決定する BeanAttributes
      beanClass - Bean.getBeanClass() の戻り値を決定するクラス
      injectionTargetFactory - InjectionTarget を取得するために使用される InjectionTargetFactory
      戻り値:
      コンテナーが提供する Bean の実装
      導入:
      1.1
    • createBean

      <T, X> Bean<T> createBean(BeanAttributes<T> attributes, ClassSE<X> beanClass, ProducerFactory<X> producerFactory)

      指定された BeanAttributes、Bean クラス、ProducerBean を取得します。

      Producer は、デコレータのインスタンスを作成および破棄し、Bean.getInjectionPoints() の戻り値を決定します。ProducerProducerFactory から取得されます。getProducerFactory(AnnotatedMethod, Bean) または getProducerFactory(AnnotatedField, Bean) では、Producer で作成されたコンテナーを使用できます。

      型パラメーター:
      T - 型
      X - 宣言する Bean の型
      パラメーター:
      attributes - 返された Bean の Bean 型、修飾子、スコープ、名前、ステレオタイプ、BeanAttributes.isAlternative() の戻り値を決定する BeanAttributes
      beanClass - Bean.getClass() の戻り値を決定するクラス
      producerFactory - Producer を取得するために使用される ProducerFactory
      戻り値:
      コンテナーが提供する Bean の実装
      導入:
      1.1
    • createInjectionPoint

      InjectionPoint createInjectionPoint(AnnotatedField<?> field)
      指定された AnnotatedFieldInjectionPoint のコンテナー提供の実装を取得します。
      パラメーター:
      field - 注入位置を定義する AnnotatedField
      戻り値:
      提供されたコンテナー InjectionPoint
      例外:
      IllegalArgumentExceptionSE - インジェクションポイントに関連する定義エラーがある場合
      導入:
      1.1
    • createInjectionPoint

      InjectionPoint createInjectionPoint(AnnotatedParameter<?> parameter)
      指定された AnnotatedParameterInjectionPoint のコンテナー提供の実装を取得します。
      パラメーター:
      parameter - 注入位置を定義する AnnotatedParameter
      戻り値:
      提供されたコンテナー InjectionPoint
      例外:
      IllegalArgumentExceptionSE - インジェクションポイントに関連する定義エラーがある場合
      導入:
      1.1
    • getExtension

      <T extends Extension> T getExtension(ClassSE<T> extensionClass)
      META-INF/services で宣言された Extension クラスのコンテナーのインスタンスを取得します。
      型パラメーター:
      T - 拡張機能の型
      パラメーター:
      extensionClass - 拡張クラスの型
      戻り値:
      拡張インスタンス
      例外:
      IllegalArgumentExceptionSE - コンテナーに特定のクラスのインスタンスがない場合
      導入:
      1.1
    • createInterceptionFactory

      <T> InterceptionFactory<T> createInterceptionFactory(CreationalContext<T> ctx, ClassSE<T> clazz)
      指定された CreationalContext と型の InterceptionFactory を作成します。
      型パラメーター:
      T - このファクトリが動作するインスタンスの型
      パラメーター:
      ctx - InterceptionFactory が作成する CreationalContext
      clazz - このファクトリが動作するインスタンスのクラス
      戻り値:
      T のインスタンスにサービスを追加するための新しい InterceptionFactory
      導入:
      2.0