インターフェース ProcessProducer<T,​X>

  • 型パラメーター:
    T - プロデューサーメソッドまたはフィールドを宣言する Bean の Bean クラス
    X - プロデューサーメソッドの戻りの型またはプロデューサーフィールドの型

    public interface ProcessProducer<T,​X>

    コンテナーは、リソースを含む、有効になっている Bean ごとに、プロデューサーメソッドまたはフィールドごとにこの型のイベントを発生させます。

    このイベントのオブザーバーは、setProducer(Producer) または configureProducer() のいずれかを呼び出すことにより、Producer をラップおよび / または置き換えることができます。オブザーバー通知内で両方のメソッドが呼び出されると、IllegalStateExceptionSE がスローされます。コンテナーは、すべてのオブザーバーが呼び出された後、プロデューサーまたはディスポーザーを呼び出すたびに、このプロパティの最終値を使用する必要があります。

    例: このオブザーバーは、EntityManager 型のすべてのプロデューサーメソッドとフィールドの Producer を装飾します。

     void decorateEntityManager(@Observes ProcessProducer<?, EntityManager> pp) {
         pit.setProducer(decorate(pp.getProducer()));
     }
     

    ProcessProducer イベントのオブザーバーメソッドが例外をスローした場合、その例外はコンテナーによって定義エラーとして扱われます。

    CDI Lite の実装は、Portable Extensions のサポートを提供する必要はありません。

    作成者:
    David Allen
    関連事項:
    Producer
    • メソッドの詳細

      • getProducer

        Producer<X> getProducer()
        コンテナーがプロデューサーメソッドを呼び出すか、プロデューサーフィールドを読み取るために使用する Producer オブジェクトを返します。
        戻り値:
        コンテナーによって使用される Producer 呼び出し側オブジェクト
        例外:
        IllegalStateExceptionSE - オブザーバーメソッド呼び出し以外で呼び出された場合
      • setProducer

        void setProducer​(Producer<X> producer)
        コンテナーがプロデューサーメソッドを呼び出すため、またはプロデューサーフィールドを読み取るために使用する Producer オブジェクトを置き換えます。
        パラメーター:
        producer - 使用する新しい Producer オブジェクト
        例外:
        IllegalStateExceptionSE - オブザーバーメソッド呼び出し以外で呼び出された場合
      • configureProducer

        ProducerConfigurator<X> configureProducer()
        このイベントによって処理された Producer で初期化された ProducerConfigurator を返し、オブザーバー呼び出しの最後に元の Producer を置き換える新しい Producer を構成します。

        各呼び出しは、オブザーバー通知内で同じコンフィギュレーターインスタンスを返します。

        戻り値:
        元の Producer を構成するための再利用不可能な ProducerConfigurator
        例外:
        IllegalStateExceptionSE - オブザーバーメソッド呼び出し以外で呼び出された場合
        導入:
        2.0
      • addDefinitionError

        void addDefinitionError​(ThrowableSE t)
        定義エラーをコンテナーに登録し、Bean ディスカバリの完了後にコンテナーがデプロイをアボートするようにします。
        パラメーター:
        t - ThrowableSE として登録する定義エラー
        例外:
        IllegalStateExceptionSE - オブザーバーメソッド呼び出し以外で呼び出された場合