パッケージ jakarta.faces.component

クラス UIComponentBase

    • コンストラクターの詳細

      • UIComponentBase

        public UIComponentBase()
        デフォルトのコンストラクターで、記述子マップを設定します。
    • メソッドの詳細

      • getAttributes

        public MapSE<StringSE,​ObjectSE> getAttributes()
        クラスからコピーされた説明: UIComponent

        この UIComponent に関連付けられた属性(およびプロパティ、以下を参照)を表す可変の Map を返します。属性名(文字列でなければなりません)をキーとします。返される実装は、すべての標準およびオプションの Map メソッドをサポートする必要があり、さらに次の追加要件もサポートする必要があります。

        • Map 実装は java.io.Serializable インターフェースを実装する必要があります。
        • null キーまたは値を追加しようとすると、NullPointerException がスローされます。
        • 文字列ではないキーを追加しようとすると、ClassCastException がスローされます。
        • キーとして指定された属性名がこの UIComponent の実装クラスのプロパティと一致する場合、次のメソッドは特別な動作をします:
          • containsKey - false を返します。
          • get() - プロパティが読み取り可能な場合は、getter メソッドを呼び出して、戻り値を返します(対応するラッパークラスでプリミティブ値をラップします)。それ以外の場合は IllegalArgumentException をスローします。
          • put() - プロパティが書き込み可能な場合は、setter メソッドを呼び出して対応する値を設定します(対応するラッパークラスでプリミティブ値をアンラップします)。プロパティが書き込み可能でない場合、またはプリミティブ型のプロパティを null に設定しようとした場合は、IllegalArgumentException をスローします。
          • remove - IllegalArgumentException をスローします。
        次で指定:
        クラス UIComponentgetAttributes 
        戻り値:
        コンポーネント属性マップ。
      • getPassThroughAttributes

        public MapSE<StringSE,​ObjectSE> getPassThroughAttributes​(boolean create)
        クラスからコピーされた説明: UIComponent

        このメソッドの仕様は UIComponent.getPassThroughAttributes() と同じですが、引数 create が false であり、このインスタンスにパススルー属性データ構造が存在しない場合に限り、null を返すことができます。返される Map 実装は、すべての標準およびオプションの Map メソッドをサポートし、さらに次の追加要件をサポートする必要があります。マップは UIComponent.getStateHelper() を使用して格納する必要があります。

        Map 実装は java.io.Serializable を実装する必要があります。

        null キーまたは値を追加しようとすると、NullPointerException がスローされます。

        String ではないキーを追加しようとすると、IllegalArgumentException がスローされます。

        このクラスから直接拡張するコンポーネントとの下位互換性のために、空のマップを返すデフォルトの実装が提供されています。

        オーバーライド:
        クラス UIComponentgetPassThroughAttributes 
        パラメーター:
        create - true の場合、新しい Map インスタンスがまだ存在していなければ作成されます。false で、既存の Map インスタンスがない場合、インスタンスは作成されず、null が返されます。
        戻り値:
        Map インスタンス、または null
      • getClientId

        public StringSE getClientId​(FacesContext context)
        クラスからコピーされた説明: UIComponent

        このコンポーネントのクライアント側識別子を返します。必要に応じて生成します。関連付けられている Renderer がある場合は、clientId をクライアントへの送信に適した形式に変換するように要求されます。

        このメソッドからの戻り値は、コンポーネントの id プロパティが変更された場合、またはコンポーネントがクライアント ID が変更される NamingContainer (たとえば、UIData ) に配置されない限り、インスタンスの存続期間中は同じ値である必要があります。ただし、これらの場合でも、このメソッドへの連続した呼び出しは常に同じ値を返す必要があります。実装では、clientId を決定する際に次の手順に従う必要があります。

        ビュー階層内で、NamingContainer を実装するこのコンポーネントに最も近い祖先を検索します。そのコンポーネントで getContainerClientId() を呼び出し、結果を parentId ローカル変数として保存します。このコンポーネントで UIComponent.getId() を呼び出し、結果を myId ローカル変数として保存します。myId が null の場合は、context.getViewRoot().createUniqueId() を呼び出して結果を myId に割り当てます。parentId が null 以外の場合は、myId を parentId + UINamingContainer.getSeparatorChar(jakarta.faces.context.FacesContext)+ myId と等しくします。Renderer.convertClientId(jakarta.faces.context.FacesContext, java.lang.String) を呼び出し、myId を渡して結果を返します。

        次で指定:
        クラス UIComponentgetClientId 
        パラメーター:
        context - 現在のリクエストの FacesContext
        戻り値:
        クライアント ID。
        例外:
        NullPointerExceptionSE - context が null の場合
      • getId

        public StringSE getId()
        クラスからコピーされた説明: UIComponent

        この UIComponent のコンポーネント識別子を返します。

        次で指定:
        クラス UIComponentgetId 
        戻り値:
        コンポーネント識別子。
      • setId

        public void setId​(StringSE id)
        クラスからコピーされた説明: UIComponent

        この UIComponent のコンポーネント ID(存在する場合)を設定します。コンポーネント識別子は、次の構文制限に従う必要があります。

        • 長さがゼロの文字列であってはなりません。
        • 最初の文字は文字またはアンダースコア('_' )でなければなりません。
        • 後続の文字は、文字、数字、アンダースコア('_' )、ダッシュ('-')でなければなりません。

        コンポーネント識別子は、次のセマンティック制限にも従う必要があります(この制限は setId() 実装によって強制されないことに注意してください)。

        • 指定された識別子は、NamingContainer である最も近い祖先 UIComponent の子孫であるすべてのコンポーネント(ファセットを含む)間で一意であるか、NamingContainer であるそのような祖先がない場合はコンポーネントツリー全体のスコープ内で一意である必要があります。
        次で指定:
        クラス UIComponentsetId 
        パラメーター:
        id - 新しいコンポーネント識別子、またはこの UIComponent にコンポーネント識別子がないことを示す null 
        例外:
        IllegalArgumentExceptionSE - id が構文的に有効でない場合
        IllegalStateExceptionSE
      • getParent

        public UIComponent getParent()
        クラスからコピーされた説明: UIComponent

        この UIComponent の親 UIComponent があれば、それを返します。子コンポーネントが getParent( ) から null を返す場合でも、コンポーネントは、子コンポーネントをこのコンポーネントの子のリストに追加および削除できるようにする必要があります。

        次で指定:
        クラス UIComponentgetParent 
        戻り値:
        親コンポーネント。
      • setParent

        public void setParent​(UIComponent parent)
        クラスからコピーされた説明: UIComponent

        この UIComponent の親 UIComponent を設定します。parent.isInView() が true を返す場合、このメソッドを呼び出すと、まずこのノードに対して PreRemoveFromViewEvent が発行され、次にこのノードの子が発行されます。次に、再親化が行われると、PostAddToViewEvent もパブリッシュされます。最初にこのノードに対して、次にノードの子に対して行われますが、次の条件のいずれかが true の場合のみです

        このメソッドは、開発者が決して呼び出さないでください。UIComponent の内部実装は、親の子 List またはファセット Map にコンポーネントが追加または削除されると、それを呼び出します。

        次で指定:
        クラス UIComponentsetParent 
        パラメーター:
        parent - 新しい親、またはコンポーネントツリーのルートノードの null 
      • isRendered

        public boolean isRendered()
        クラスからコピーされた説明: UIComponent

        このコンポーネント(およびその子)をリクエスト処理ライフサイクルのレスポンスレンダリングフェーズでレンダリングする必要がある場合は、true を返します。

        次で指定:
        クラス UIComponentisRendered 
        戻り値:
        コンポーネントをレンダリングする必要がある場合は true、それ以外の場合は false
      • setRendered

        public void setRendered​(boolean rendered)
        クラスからコピーされた説明: UIComponent

        この UIComponent の rendered プロパティを設定します。

        次で指定:
        クラス UIComponentsetRendered 
        パラメーター:
        rendered - true がこのコンポーネントをレンダリングする場合。それ以外の場合は、このコンポーネントをレンダリングしないでください
      • setRendererType

        public void setRendererType​(StringSE rendererType)
        クラスからコピーされた説明: UIComponent

        この UIComponentRenderer 型、またはそれ自体をレンダリングするコンポーネントの null を設定します。

        次で指定:
        クラス UIComponentsetRendererType 
        パラメーター:
        rendererType - 使用する Renderer の型の論理識別子、またはそれ自体をレンダリングするコンポーネントの null 
      • getRendersChildren

        public boolean getRendersChildren()
        クラスからコピーされた説明: UIComponent

        このコンポーネントが子コンポーネントのレンダリングを担当するかどうかを示すフラグを返します。getRendersChildren() のデフォルト実装は、このコンポーネントのレンダラーを見つけようとします。存在する場合は、Renderer.getRendersChildren() を呼び出して結果を返します。そうでない場合は、false を返します。Jakarta Faces Specification のバージョン 1.2 以降、コンポーネントの作成者は、このメソッドから true を返し、encodeChildren(jakarta.faces.context.FacesContext) に依存することをお勧めします。

        次で指定:
        クラス UIComponentgetRendersChildren 
        戻り値:
        コンポーネントが子をレンダリングする場合は true、それ以外の場合は false
      • getChildren

        public ListSE<UIComponent> getChildren()
        クラスからコピーされた説明: UIComponent

        このコンポーネントに関連付けられた子 UIComponent を表す変更可能な List を返します。返される実装は、すべての標準およびオプションの List メソッドをサポートする必要があり、さらに次の追加要件もサポートする必要があります。

        • List 実装は java.io.Serializable インターフェースを実装する必要があります。
        • null を追加しようとすると、NullPointerException をスローする必要があります
        • UIComponent を実装していないオブジェクトを追加しようとすると、ClassCastException がスローされます。
        • 新しい子コンポーネントを追加するときは常に、子の parent プロパティをこのコンポーネントインスタンスに設定する必要があります。子の parent プロパティがすでに null でない場合、子は最初に前の親から削除する必要があります(子またはファセットのいずれかである可能性があります)。
        • 既存の子コンポーネントが削除される場合は常に、子の parent プロパティを null に設定する必要があります。
        • 子コンポーネントがビューに追加された後、Application.publishEvent(jakarta.faces.context.FacesContext, java.lang.Class<? extends jakarta.faces.event.SystemEvent>, java.lang.Object) を呼び出して、PostAddToViewEvent.class を最初の引数として渡し、新しく追加されたコンポーネントを 2 番目の引数として渡します。

        次で指定:
        クラス UIComponentgetChildren 
        戻り値:
        子供のリスト。
      • getChildCount

        public int getChildCount()
        クラスからコピーされた説明: UIComponent

        この UIComponent に関連付けられている子 UIComponent の数を返します。子がない場合、このメソッドは 0 を返す必要があります。このメソッドが子コンポーネントリストの作成を引き起こしてはなりません。

        次で指定:
        クラス UIComponentgetChildCount 
        戻り値:
        子コンポーネントの数。
      • findComponent

        public UIComponent findComponent​(StringSE expression)
        クラスからコピーされた説明: UIComponent

        以下に説明するアルゴリズムに従って、指定された検索式(存在する場合)に一致する id で UIComponent検索して返します。

        WARNING: 見つかった UIComponent インスタンスがあれば、そのツリー走査コンテキストに関係なく返されます。コンポーネントから Jakarta Expression 言語にバインドされた属性を取得することは安全ではありません。Jakarta Expression Language 式には、#{component} などの暗黙的なオブジェクトを含めることができます。これらのオブジェクトは、ツリートラバースコンテキストのスコープ内で評価されることを前提としています。ツリートラバーサルコンテキストの外でこれらの種類の暗黙的なオブジェクトを使用して式を評価すると、未定義の結果が生成されます。見つかった UIComponent インスタンスを操作するときにツリートラバーサルコンテキストを正しく説明するメソッドについて は、UIComponent.invokeOnComponent(jakarta.faces.context.FacesContext, java.lang.String, jakarta.faces.component.ContextCallback) を参照してください。UIComponent.invokeOnComponent(jakarta.faces.context.FacesContext, java.lang.String, jakarta.faces.component.ContextCallback) は、単純な clientId が与えられたコンポーネントを見つけるのにも役立ちます。

        コンポーネント識別子は、このコンポーネント(このコンポーネント自体の可能性があります)を囲む最も近い祖先 NamingContainer のスコープ内で一意である必要があります。このコンポーネントの祖先に NamingContainer コンポーネントがない場合、ツリーのルートコンポーネントは、そのクラスが実際に NamingContainer インターフェースを実装しているかどうかに関係なく、NamingContainer であるかのように扱われます。

        検索式は、識別子(UIComponent の id プロパティと完全に一致するか、UINamingContainer.getSeparatorChar(jakarta.faces.context.FacesContext) 文字値によってリンクされた一連のそのような識別子のいずれかで構成されます。検索アルゴリズムは次のように動作するはずですが、代替のアルゴリズムを長く使用することもできます。最終結果は同じなので:

        • 次のいずれかの条件が満たされるとすぐに停止して、検索のベースとなる UIComponent を特定します。
          • 検索式が区切り文字で始まる場合(「絶対」検索式と呼ばれます)、ベースはコンポーネントツリーのルート UIComponent になります。先頭の区切り文字は削除され、検索式の残りの部分は、以下で説明する「相対」検索式として扱われます。
          • それ以外の場合、この UIComponentNamingContainer である場合は、それがベースとして機能します。
          • それ以外の場合は、このコンポーネントの親を検索します。NamingContainer が検出された場合は、それがベースになります。
          • それ以外の場合(NamingContainer が検出されない場合)、ルート UIComponent がベースになります。
        • 検索式(前のステップで変更された可能性があります)は、「相対」検索式になり、ベースコンポーネントのスコープ内で一致する id を持つコンポーネント(存在する場合)を検索するために使用されます。照合は次のように実行されます。
          • 検索式が単純な識別子の場合、この値は id プロパティと比較され、次にベース UIComponent のファセットと子を再帰的に調べます(子孫 NamingContainer が見つかった場合、そのファセットと子は検索されません)。
          • 検索式に区切り文字で区切られた複数の識別子が含まれている場合、最初の識別子を使用して、前の箇条書きの規則に従って NamingContainer を見つけます。次に、この NamingContainer の findComponent() メソッドが呼び出され、検索式の残りの部分が渡されます。
        次で指定:
        クラス UIComponentfindComponent 
        パラメーター:
        expression - 返される UIComponent を識別する検索式
        戻り値:
        見つかった UIComponent、またはコンポーネントが見つからなかった場合は null 
        例外:
        NullPointerExceptionSE - expr が null の場合
      • invokeOnComponent

        public boolean invokeOnComponent​(FacesContext context,
                                         StringSE clientId,
                                         ContextCallback callback)
                                  throws FacesException

        ビュー階層のこのコンポーネントから開始して、引数 clientId と等しい clientId を持つコンポーネントを検索し、見つかった場合は、引数 callbackContextCallback.invokeContextCallback(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent) メソッドを呼び出し、現在の FacesContext と見つかったコンポーネントを引数として渡します。このメソッドは UIComponent.findComponent(java.lang.String) に似ていますが、ビューのルートから検索するための主要な UINamingContainer.getSeparatorChar(jakarta.faces.context.FacesContext) 構文をサポートしていません。

        デフォルトの実装では、最初に this.getClientId() が引数 clientId と等しいかどうかをチェックします。その場合は、最初に UIComponent.pushComponentToEL(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent) を呼び出し、に引数コールバックで ContextCallback.invokeContextCallback(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent) メソッドを呼び出して、FacesContext 引数を渡し、これをコンポーネント引数として渡します。次に UIComponent.popComponentFromEL(jakarta.faces.context.FacesContext) を呼び出します。コールバックによって Exception がスローされた場合は、FacesException でラップして、再度スローします。それ以外の場合は、true を返します。

        それ以外の場合は、UIComponent.getFacetsAndChildren() によって返される各コンポーネントについて、このメソッドに引数を順番に渡して invokeOnComponent() を呼び出します。invokeOnComponent() が初めて true を返したときは、残りの Iterator のトラバースを中止し、true を返します。

        ContextCallback.invokeContextCallback(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent) を呼び出す場合、このメソッドの実装は、コールバックに渡されたコンポーネントの状態が、引数 clientId で見つかった状態に関するビュー階層内のコンポーネントの位置を正しく反映することを保証する必要があります。例: UIData などの反復コンポーネントは、正しい行に基づく適切な子コンポーネントを見つける前に、引数 clientId を正しく反映するように行インデックスを設定する必要があります。コールバックが戻るとき、通常または Exception をスローすることにより、このメソッドの実装は、ビューの状態をコールバックを呼び出す前の状態に復元する必要があります。

        UIComponent.getFacetsAndChildren() のどの要素も invokeOnComponent() から true を返さなかった場合は、false を返します。

        clientId でコンポーネントを検索する簡単な使用例。

         
            private UIComponent found = null;
        
            private void doFind(FacesContext context, String clientId) {
              context.getViewRoot().invokeOnComponent(context, clientId,
                  new ContextCallback() {
                     public void invokeContextCallback(FacesContext context,
                                                   UIComponent component) {
                       found = component;
                     }
                  });
            }
         
         
        オーバーライド:
        クラス UIComponentinvokeOnComponent 
        パラメーター:
        context - 現在のリクエストの FacesContext
        clientId - 引数コールバックに渡されるコンポーネントのクライアント識別子。
        callback - Callback インターフェースの実装。
        戻り値:
        true 指定された clientId を持つコンポーネントが見つかった場合、そのコンポーネントを引数として渡してコールバックメソッドが正常に呼び出され、例外はスローされませんでした。指定された clientId のコンポーネントが見つからない場合、false を返します。
        例外:
        NullPointerExceptionSE - いずれかの引数が null の場合
        FacesException - 引数 Callback が例外をスローすると、FacesException にラップされて再スローされます。
        導入:
        1.2
      • getFacets

        public MapSE<StringSE,​UIComponent> getFacets()
        クラスからコピーされた説明: UIComponent

        この UIComponent に関連付けられたファセット UIComponent を表す変更可能な Map を返します。ファセット名(文字列である必要があります)をキーとします。返される実装は、すべての標準およびオプションの Map メソッドをサポートする必要があり、さらに次の追加要件もサポートする必要があります。

        • Map 実装は java.io.Serializable インターフェースを実装する必要があります。
        • null キーまたは値を追加しようとすると、NullPointerException がスローされます。
        • 文字列ではないキーを追加しようとすると、ClassCastException がスローされます。
        • UIComponent 以外の値を追加しようとすると、ClassCastException がスローされます。
        • 新しいファセット UIComponent が追加されるたびに:
          • コンポーネントの parent プロパティをこのコンポーネントインスタンスに設定する必要があります。
          • コンポーネントの parent プロパティがすでに null 以外の場合、コンポーネントは最初に前の親(子またはファセットのいずれかであった可能性がある)から削除する必要があります。
        • 既存のファセット UIComponent が削除されるときはいつでも:
          • ファセットの parent プロパティは null に設定する必要があります。
        次で指定:
        クラス UIComponentgetFacets 
        戻り値:
        ファセットのマップ。
      • getFacetCount

        public int getFacetCount()
        クラスからコピーされた説明: UIComponent

        この UIComponent に関連付けられているファセット UIComponent の数を返します。ファセットがない場合、このメソッドは 0 を返す必要があります。このメソッドにより、ファセットコンポーネントマップが作成されないようにする必要があります。

        UIComponent を直接拡張するクラスとの下位互換性のために、単に UIComponent.getFacets() を呼び出し、次に返された Map で size() メソッドを呼び出すデフォルト実装が提供されています。このメソッドのより最適化されたバージョンが getFacetCount() で提供されています。

        オーバーライド:
        クラス UIComponentgetFacetCount 
        戻り値:
        ファセットの数。
      • getFacet

        public UIComponent getFacet​(StringSE name)
        クラスからコピーされた説明: UIComponent

        名前付きファセットが存在する場合はそれを返し、そうでない場合は null を返す簡易メソッド。リクエストされたファセットが存在しない場合は、ファセットマップを作成しないでください。

        次で指定:
        クラス UIComponentgetFacet 
        パラメーター:
        name - 目的のファセットの名前
        戻り値:
        コンポーネント、または null
      • getFacetsAndChildren

        public IteratorSE<UIComponent> getFacetsAndChildren()
        クラスからコピーされた説明: UIComponent

        この UIComponent の子 UIComponent が後に続くファセットに Iterator を返します。ファセットは未定義の順序で返され、その後にすべての子が子リストに格納されている順序で返されます。このコンポーネントにファセットまたは子がない場合、空の Iterator が返されます。

        返される Iterator は、remove() 操作をサポートしてはなりません。

        次で指定:
        クラス UIComponentgetFacetsAndChildren 
        戻り値:
        ファセットと子イテレータ。
      • decode

        public void decode​(FacesContext context)
        クラスからコピーされた説明: UIComponent

        指定された FacesContext に含まれるリクエストからこの UIComponent の新しい状態をデコードし、必要に応じてこの状態を保存します。

        デコード中、queueEvent() を呼び出すことにより、(インタレストを登録したイベントリスナーによる)後の処理のためにイベントをキューに入れることができます。

        次で指定:
        クラス UIComponentdecode 
        パラメーター:
        context - FacesContext(処理中のリクエスト)
        例外:
        NullPointerExceptionSE - context が null の場合
      • addFacesListener

        protected void addFacesListener​(FacesListener listener)

        指定された FacesListener を、この UIComponent からイベント通知を受信するために登録されたリスナーのセットに追加します。イベントソースとして機能する UIComponent クラスには、必要な型のリスナーを登録するための対応する型安全 API があり、それらの登録メソッドの実装はこのメソッドに委譲されることが予想されます。例:

         public class FooEvent extends FacesEvent {
           ...
           protected boolean isAppropriateListener(FacesListener listener) {
             return (listener instanceof FooListener);
           }
           protected void processListener(FacesListener listener) {
             ((FooListener) listener).processFoo(this);
           }
           ...
         }
        
         public interface FooListener extends FacesListener {
           public void processFoo(FooEvent event);
         }
        
         public class FooComponent extends UIComponentBase {
           ...
           public void addFooListener(FooListener listener) {
             addFacesListener(listener);
           }
           public void removeFooListener(FooListener listener) {
             removeFacesListener(listener);
           }
           ...
         }
         
        次で指定:
        クラス UIComponentaddFacesListener 
        パラメーター:
        listener - 登録する FacesListener
        例外:
        NullPointerExceptionSE - listener が null の場合
      • getFacesListeners

        protected FacesListener[] getFacesListeners​(ClassSE clazz)
        クラスからコピーされた説明: UIComponent

        指定されたクラスのインスタンスである登録された FacesListener の配列を返します。そのような登録されたリスナーがない場合、長さ 0 の配列が返されます。返された配列は、要素型 clazz に強く型付けされた配列に安全にキャストできます。

        次で指定:
        クラス UIComponentgetFacesListeners 
        パラメーター:
        clazz - 返されるために FacesListener によって実装される必要があるクラス
        戻り値:
        Faces リスナー、または長さがゼロの配列。
        例外:
        IllegalArgumentExceptionSE - class が FacesListener ではなく、実装していない場合
        NullPointerExceptionSE - clazz が null の場合
      • queueEvent

        public void queueEvent​(FacesEvent event)
        クラスからコピーされた説明: UIComponent

        現在のリクエスト処理ライフサイクルフェーズの最後に、ブロードキャストするイベントをキューに入れます。UIComponentBase のデフォルト実装では、この呼び出しを親 UIComponent の queueEvent() メソッドに委譲する必要があります。

        次で指定:
        クラス UIComponentqueueEvent 
        パラメーター:
        event - キューに入れられる FacesEvent
        例外:
        IllegalStateExceptionSE - このコンポーネントが UIViewRoot の子孫でない場合
        NullPointerExceptionSE - event が null の場合
      • subscribeToEvent

        public void subscribeToEvent​(ClassSE<? extends SystemEvent> eventClass,
                                     ComponentSystemEventListener componentListener)

        引数 componentListener によって参照されるリスナーインスタンスを、この UIComponent の特定のインスタンスから発生する eventClass 型のイベントのリスナーとしてインストールします。デフォルトの実装では、引数 componentListener を listener 引数としてラップする内部 SystemEventListener インスタンスを作成します。この内部クラスは、SystemEventListener.processEvent(jakarta.faces.event.SystemEvent) の実装で引数 componentListener を介して呼び出す必要があり、この UIComponent のインスタンスクラスが引数から isListenerForSource に割り当て可能である場合、SystemEventListener.isListenerForSource(java.lang.Object) の実装は true を返す必要があります。

        引数 componentListener によって参照されるリスナーインスタンスは、UIComponent のこの特定のインスタンスから発生する型 eventClass のイベントのリスナーとしてまだインストールされていない可能性があります。既存のリスナーが引数 componentListener と等しいかどうかを判断するために比較を行う場合、既存のリスナーの equals() メソッドを呼び出して、引数 componentListener を渡す必要があります。その逆ではありません。

        オーバーライド:
        クラス UIComponentsubscribeToEvent 
        パラメーター:
        eventClass - listener を発生させる必要があるイベントの Class 
        componentListener - 型 facesEventClass のイベントが発生したときに ComponentSystemEventListener.processEvent(jakarta.faces.event.ComponentSystemEvent) メソッドを呼び出す必要がある ComponentSystemEventListener の実装。
        例外:
        NullPointerExceptionSE - 引数のいずれかが null の場合。
        導入:
        2.1
      • unsubscribeFromEvent

        public void unsubscribeFromEvent​(ClassSE<? extends SystemEvent> eventClass,
                                         ComponentSystemEventListener componentListener)

        引数 componentListener によって参照されるリスナーインスタンスを、この UIComponent の特定のインスタンスから発生する型 eventClass のイベントのリスナーとして削除します。既存のリスナーは引数 componentListener に等しい(従って、除去しなければならない)であるかどうかを決定するための比較を行うときに、既存のリスナーに equals() メソッドは、引数 componentListener ではなく、他の方法で回避を渡す、呼び出されなければなりません。

        オーバーライド:
        クラス UIComponentunsubscribeFromEvent 
        パラメーター:
        eventClass - listener を削除する必要があるイベントの Class 
        componentListener - 型 eventClass のイベントが発生したときに ComponentSystemEventListener.processEvent(jakarta.faces.event.ComponentSystemEvent) メソッドを呼び出さない ComponentSystemEventListener の実装。
        例外:
        NullPointerExceptionSE - 引数のいずれかが null の場合。
        導入:
        2.1
      • processSaveState

        public ObjectSE processSaveState​(FacesContext context)
        クラスからコピーされた説明: UIComponent

        次のように、このコンポーネントのすべてのファセット、このコンポーネントのすべての子、このコンポーネント自体に対して、リクエスト処理ライフサイクルのレンダリングレスポンスフェーズの状態保存部分で必要なコンポーネントツリー処理を実行します。

        状態保存メソッドがサーバーに設定されている場合、このメソッドは呼び出されない可能性があります。

        次で指定:
        クラス UIComponentprocessSaveState 
        パラメーター:
        context - FacesContext(処理中のリクエスト)
        戻り値:
        保存された状態。
        例外:
        NullPointerExceptionSE - context が null の場合
      • processRestoreState

        public void processRestoreState​(FacesContext context,
                                        ObjectSE state)
        クラスからコピーされた説明: UIComponent

        次のように、このコンポーネントのすべてのファセット、このコンポーネントのすべての子、このコンポーネント自体に対して、リクエスト処理ライフサイクルのビュー復元フェーズで必要なコンポーネントツリー処理を実行します。

        状態保存メソッドがサーバーに設定されている場合、このメソッドは呼び出されない可能性があります。

        次で指定:
        クラス UIComponentprocessRestoreState 
        パラメーター:
        context - FacesContext(処理中のリクエスト)
        state - 状態。
        例外:
        NullPointerExceptionSE - context が null の場合
      • getRenderer

        protected Renderer getRenderer​(FacesContext context)
        クラスからコピーされた説明: UIComponent

        このコンポーネントに関連付けられている Renderer インスタンスがあれば、それを返す簡易メソッド。それ以外の場合は、null を返します。

        次で指定:
        クラス UIComponentgetRenderer 
        パラメーター:
        context - 現在のリクエストの FacesContext
        戻り値:
        レンダラー、または null
      • saveState

        public ObjectSE saveState​(FacesContext context)
        インターフェースからコピーされた説明: StateHolder

        インスタンスの状態を Serializable オブジェクトとして取得します。

        このインターフェースを実装するクラスが、StateHolder を実装するインスタンス(イベントハンドラー、バリデーターなどを含む UIComponent など)への参照を持っている場合、このメソッドはそれらすべてのインスタンスで StateHolder.saveState(jakarta.faces.context.FacesContext) メソッドも呼び出す必要があります。このメソッドは、子とファセットの状態を保存してはなりませんそれは StateManager を介して行われます

        このメソッドは、実装オブジェクトの状態を変更してはなりません。つまり、このコードを実行した後:

         
         Object state = component.saveState(facesContext);
         
         

        component は、実行前と同じでなければなりません。

        このメソッドからの戻り値は Serializable でなければなりません

        パラメーター:
        context - Faces コンテキスト。
        戻り値:
        保存された状態。
      • restoreState

        public void restoreState​(FacesContext context,
                                 ObjectSE state)
        インターフェースからコピーされた説明: StateHolder

        state オブジェクトのエントリから状態を復元するために必要な処理を実行します。

        このインターフェースを実装するクラスが、StateHolder も実装するインスタンスへの参照を持っている場合(イベントハンドラー、バリデーターなどを備えた UIComponent など)、このメソッドはそれらすべてのインスタンスで StateHolder.restoreState(jakarta.faces.context.FacesContext, java.lang.Object) メソッドも呼び出す必要があります。

        state 引数が null の場合、アクションを実行せずに戻ります。

        パラメーター:
        context - Faces コンテキスト。
        state - 状態。
      • isTransient

        public boolean isTransient()
        インターフェースからコピーされた説明: StateHolder

        true の場合、このインターフェースを実装するオブジェクトは、状態の保存または復元に参加してはなりません。

        戻り値:
        一時的な場合は true、それ以外の場合は false
      • setTransient

        public void setTransient​(boolean transientFlag)
        インターフェースからコピーされた説明: StateHolder

        このインターフェースを実装するオブジェクトが状態の保存または復元に参加する必要があるかどうかを示します

        パラメーター:
        transientFlag - このオブジェクトが 状態の保存または復元に参加しない場合はブール値 true を渡し、それ以外の場合は false を渡します。
      • saveAttachedState

        public static ObjectSE saveAttachedState​(FacesContext context,
                                               ObjectSE attachedObject)

        このメソッドは、1 つ以上のアタッチされたオブジェクトを保存する UIComponent サブクラスによって呼び出されます。これは、StateHolder インターフェースを実装しているかどうかに関係なく、アタッチされたオブジェクトを保存する作業を行う便利なメソッドです。このメソッドを使用すると、restoreAttachedState(jakarta.faces.context.FacesContext, java.lang.Object) を使用して、アタッチされたオブジェクトを復元できます。

        このメソッドは、次の型のアタッチされたオブジェクトの保存をサポートしています: これらのオブジェクトの Objects、null 値、Collections。含まれているオブジェクトが Collection ではなく、StateHolder を実装していない場合は、引数のない public コンストラクターが必要です。返されるオブジェクトの正確な構造は未定義で不透明ですが、直列化可能です。

        パラメーター:
        context - このリクエストの FacesContext
        attachedObject - List インスタンスまたはオブジェクトであるオブジェクト。attachedObject (または attachedObject を構成する要素は、StateHolder を実装できます。
        戻り値:
        保存する状態オブジェクト。
        例外:
        NullPointerExceptionSE - コンテキスト引数が null の場合。
      • getEventNames

        public CollectionSE<StringSE> getEventNames()

        これは ClientBehaviorHolder.getEventNames() のデフォルトの実装です。UIComponent は ClientBehaviorHolder インターフェースを実装していませんが、ClientBehaviorHolder によって定義されたメソッドのデフォルト実装を提供して、サブクラスの実装を簡素化しています。ClientBehaviorHolder 契約をサポートするサブクラスは、サブクラスが ClientBehaviorHolder を実装することを宣言し、このメソッドをオーバーライドして、コンポーネントがサポートするクライアントイベント名の空でない Collection を返す必要があります。

        戻り値:
        イベント名のコレクション。
        導入:
        2.0