パッケージ jakarta.faces.application

クラス Application

  • 既知の直属サブクラス
    ApplicationWrapper

    public abstract class Application
    extends ObjectSE

    Application は Web アプリケーションごとのシングルトンオブジェクトを表し、Jakarta Faces(または拡張機能を提供したい実装)に基づくアプリケーションは、Jakarta Faces に必要な機能を提供するアプリケーション全体のシングルトンを登録できます。各オブジェクトのデフォルトの実装は、アプリケーションが動作をカスタマイズすることを選択しない場合のために提供されています。

    Application のインスタンスは、ApplicationFactory の getApplication() メソッドを呼び出すことによって作成されます。このインスタンスは共有されているため、スレッドセーフな方法で実装する必要があります。

    アプリケーションは、Faces 構成ファイルで指定されたいくつかの型のオブジェクトのファクトリとしても機能します。createComponent(java.lang.String)createConverter(java.lang.String)createValidator(java.lang.String) を参照してください。

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

      • Application

        public Application()
    • メソッドの詳細

      • getActionListener

        public abstract ActionListener getActionListener()

        このアプリケーションのすべての ActionSource コンポーネントに登録されるデフォルトの ActionListener返します。明示的に設定されていない場合は、Jakarta Faces Specification Document の第 7 章「アプリケーション統合」のセクション 7.1.1「ActionListener プロパティ」で指定されている機能を実行するデフォルトの実装を提供する必要があります。

        デフォルトの ActionListener の仕様では、非推奨のプロパティ(action)とクラス(MethodBinding)の使用が必要になることに注意してください。残念ながら、デフォルトの ActionListener は、ActionSource2 を実装せず、ActionSource のみを実装するコンポーネントで引き続き動作する必要があるため、これが必要です。

        戻り値:
        アクションリスナー。
      • getDefaultLocale

        public abstract LocaleSE getDefaultLocale()

        このアプリケーションのデフォルトの Locale を返します。明示的に設定されていない場合、null が返されます。

        戻り値:
        デフォルトのロケール、または null
      • setDefaultLocale

        public abstract void setDefaultLocale​(LocaleSE locale)

        このアプリケーションのデフォルト Locale を設定します。

        パラメーター:
        locale - 新しいデフォルトの Locale
        例外:
        NullPointerExceptionSE - locale が null の場合
      • getDefaultRenderKitId

        public abstract StringSE getDefaultRenderKitId()

        このアプリケーションのレンダリングに使用する renderKitId を返します。明示的に設定されていない場合、null が返されます。

        戻り値:
        デフォルトのレンダリングキット ID、または null
      • setDefaultRenderKitId

        public abstract void setDefaultRenderKitId​(StringSE renderKitId)

        このアプリケーションのレンダリングに使用する renderKitId を設定します。クライアントが同じアプリケーションで複数の RenderKit インスタンスの使用をサポートするカスタム ViewHandler を提供していない限り、このメソッドは、Faces リクエストが処理される前のアプリケーションの起動時にのみ呼び出す必要があります。これは現在の仕様の制限であり、将来のリリースで解除される可能性があります。

        パラメーター:
        renderKitId - 設定するレンダリングキット ID。
      • getMessageBundle

        public abstract StringSE getMessageBundle()

        このアプリケーションの Jakarta Faces メッセージに使用される ResourceBundle の完全修飾クラス名を返します。明示的に設定されていない場合、null が返されます。

        戻り値:
        メッセージバンドルクラス名、または null
      • setMessageBundle

        public abstract void setMessageBundle​(StringSE bundle)

        このアプリケーションの Jakarta Faces メッセージに使用される ResourceBundle の完全修飾クラス名を設定します。リソースバンドル名の構文の詳細については、java.util.ResourceBundle クラスの JavaDocs を参照してください。

        パラメーター:
        bundle - 使用するリソースバンドルのベース名
        例外:
        NullPointerExceptionSE - bundle が null の場合
      • getNavigationHandler

        public abstract NavigationHandler getNavigationHandler()

        この Web アプリケーションに対して呼び出されたアプリケーションアクションによって返される結果が渡される NavigationHandler インスタンスを返します。明示的に設定しない場合は、NavigationHandler クラスの説明で説明されている機能を実行するデフォルトの実装を提供する必要があります。

        • NavigationHandler 実装は、<application> 要素内の <navigation-handler> 要素の値として完全修飾クラス名を指定することにより、アプリケーション構成リソースで宣言されます。

        ランタイムは、Jakarta Faces の他のすべてのプラグ可能なアーティファクトと同様に、デコレータパターンを使用する必要があります。

        戻り値:
        ナビゲーションハンドラー。
      • setNavigationHandler

        public abstract void setNavigationHandler​(NavigationHandler handler)

        この Web アプリケーションに対して呼び出されたアプリケーションアクションによって返される結果が渡される NavigationHandler インスタンスを設定します。

        パラメーター:
        handler - 新しい NavigationHandler インスタンス
        例外:
        NullPointerExceptionSE - handler が null の場合
      • getResourceHandler

        public ResourceHandler getResourceHandler()

        このアプリケーションのシングルトン、ステートレス、スレッドセーフの ResourceHandler を返します。Jakarta Faces 実装は、ResourceHandler の代替実装を宣言するための次の手法をサポートする必要があります。

        • ResourceHandler 実装は、<application> 要素内の <resource-handler> 要素の値として完全修飾クラス名を指定することにより、アプリケーション構成リソースで宣言されます。

        上記のすべてのケースで、ランタイムは Jakarta Faces の他のすべてのプラガブルアーティファクトと同様に、デコレーターパターンを使用する必要があります。

        Application を装飾するユーザーが機能を継続できるように、UnsupportedOperationException をスローするデフォルトの実装が提供されています

        .
        戻り値:
        リソースハンドラー。
        導入:
        2.0
      • setResourceHandler

        public void setResourceHandler​(ResourceHandler resourceHandler)

        リソースのマークアップのレンダリング、およびリソースを提供するためのクライアントリクエストを満たすために使用される ResourceHandler インスタンスを設定します。

        パラメーター:
        resourceHandler - 新しい ResourceHandler インスタンス
        例外:
        IllegalStateExceptionSE - このアプリケーションの Lifecycle インスタンスによって少なくとも 1 つのリクエストが処理された後にこのメソッドが呼び出された場合。
        NullPointerExceptionSE - resourceHandler が null の場合
        導入:
        2.0
      • getResourceBundle

        public ResourceBundleSE getResourceBundle​(FacesContext ctx,
                                                StringSE name)

        指定された名前のアプリケーション構成リソースで定義されている ResourceBundle を見つけます。名前に ResourceBundle が定義されている場合は、現在の UIViewRoot のロケールを使用するインスタンスを返します。

        デフォルトの実装は UnsupportedOperationException をスローし、このクラスを継承する既存のアプリケーションを壊さないという唯一の目的のために提供されています。

        パラメーター:
        ctx - Faces コンテキスト。
        name - リソースバンドルの名前。
        戻り値:
        リソースバンドル。
        例外:
        FacesException - バンドルが定義されているが解決できない場合
        NullPointerExceptionSE - ctx == null の場合 | | 名前 == null
        導入:
        1.2
      • getProjectStage

        public ProjectStage getProjectStage()

        現在実行中のアプリケーションインスタンスのプロジェクトステージを返します。デフォルト値は ProjectStage.Production です

        このメソッドの実装は、返される値を決定するために、次のアルゴリズムまたは同等の最終結果を持つ同等のものを実行する必要があります。

        値がこのメソッドへの以前の呼び出しによってすでに決定されている場合は、単にその値を返します。

        ProjectStage.PROJECT_STAGE_JNDI_NAME(戻り値の型 java.lang.String)の値で指定されたキーで、JNDI 環境エントリを探します。見つかった場合は、以下のアルゴリズムを続行します。それ以外の場合は、ProjectStage.PROJECT_STAGE_PARAM_NAME の値で指定されたキーを使用して、現在の FacesContext から ExternalContext の initParamMap のエントリを探します。

        値が見つかった場合は、initParamMap から値を渡して ProjectStage.valueOf() を呼び出し、列挙定数を取得できるかどうかを確認します。これが例外なく成功した場合は、値を保存して返します。

        見つからない場合、またはこれまでに列挙定数値を検出する試みが失敗した場合は、説明的なエラーメッセージをログに記録し、値を ProjectStage.Production として割り当てて返します。

        Application を装飾するユーザーが機能を継続できるように、UnsupportedOperationException をスローするデフォルトの実装が提供されています

        .
        戻り値:
        プロジェクトの段階。
        導入:
        2.0
      • addELResolver

        public void addELResolver​(ELResolver resolver)

        Jakarta Faces Specification Document のセクション 5.3.2 "ELResolver" で指定されているように、引数 resolver がリゾルバーチェーンに追加されるようにします。

        このメソッドで登録された ELResolver は、いったん登録すると削除できません。

        アプリケーションがクライアントからリクエストを受け取った後で ELResolver を登録することは不正です。それ以降にリスナーを登録しようとする場合は、IllegalStateException をスローする必要があります。この制限は、Jakarta Server Pages コンテナーが、チェーンに標準のもの以外に追加の ELResolver がない一般的な場合に最適化できるようにするために設けられています。すでにチェーンにある CompositeELResolver に、初期化の前または後に ELResolver を追加することができます。

        デフォルトの実装は UnsupportedOperationException をスローし、Application を継承する既存のアプリケーションを壊さないという唯一の目的のために提供されています。

        パラメーター:
        resolver - 追加する Jakarta Expression Language リゾルバー。
        例外:
        IllegalStateExceptionSE - FacesServlet への最初のリクエストが処理された後に呼び出された場合
        導入:
        1.2
      • getELResolver

        public ELResolver getELResolver()

        すべての Jakarta Expression Language 解決に使用されるシングルトン ELResolver インスタンスを返します。これは実際には CompositeELResolver のインスタンスであり、次の ELResolver インスタンスを次の順序で含める必要があります。

        1. アプリケーション構成リソースの <el-resolver> 要素を使用して宣言された ELResolver インスタンス。

        2. スペックドキュメントの第 5 章のセクション VariableResolver ChainWrapper に従って、レガシー VariableResolver チェーンのヘッドをラップする implementation

        3. スペックドキュメントの第 5 章のセクション PropertyResolver ChainWrapper に従って、レガシー PropertyResolver チェーンのヘッドをラップする implementation

        4. addELResolver(jakarta.el.ELResolver) の呼び出しによって追加された ELResolver インスタンス。

        デフォルトの実装は UnsupportedOperationException をスローし、Application を継承する既存のアプリケーションを壊さないという唯一の目的のために提供されています。

        戻り値:
        Jakarta Expression Language リゾルバー。
        導入:
        1.2
      • getFlowHandler

        public FlowHandler getFlowHandler()

        このアプリケーションのスレッドセーフなシングルトン FlowHandler を返します。仕様のバージョン 2.2 への準拠を宣言する実装の場合、アプリケーションにフローがない場合でも、このメソッドが null を返さないようにする必要があります。これは、アプリケーションの存続期間中に動的フローを作成できるようにするために必要です。

        仕様のバージョン 2.2 への準拠を宣言するすべての実装は、このメソッドを実装する必要があります。 Application を継承するが、このメソッドをオーバーライドしない環境との下位互換性を確保するために、null を返す実装が提供されています。Application の装飾可能な性質により、このメソッドを呼び出すコードは常に null の戻り値をチェックする必要があります。

        戻り値:
        フローハンドラー。
        導入:
        2.2
      • setFlowHandler

        public void setFlowHandler​(FlowHandler newHandler)

        NavigationHandler が使用する FlowHandler インスタンスを設定して、面フロー機能の要件を満たします。

        パラメーター:
        newHandler - 設定するフローハンドラー。
        例外:
        NullPointerExceptionSE - newHandler が null の場合
        IllegalStateExceptionSE - このアプリケーションの Lifecycle インスタンスによって少なくとも 1 つのリクエストが処理された後にこのメソッドが呼び出された場合。
        導入:
        2.2
      • getViewHandler

        public abstract ViewHandler getViewHandler()

        リクエスト処理のライフサイクルのビューを復元し、レスポンスのレンダリング・フェーズで利用される ViewHandler インスタンスを返します。明示的に設定されていない場合は、Jakarta Faces Specification の ViewHandler の説明で説明されている機能を実行するデフォルトの実装を提供する必要があります。

        戻り値:
        ビューハンドラー。
      • setViewHandler

        public abstract void setViewHandler​(ViewHandler handler)

        リクエスト処理ライフサイクルのビュー復元フェーズとレスポンスのレンダリングフェーズで使用される ViewHandler インスタンスを設定します。

        パラメーター:
        handler - 新しい ViewHandler インスタンス
        例外:
        IllegalStateExceptionSE - このアプリケーションの Lifecycle インスタンスによって少なくとも 1 つのリクエストが処理された後にこのメソッドが呼び出された場合。
        NullPointerExceptionSE - handler が null の場合
      • getStateManager

        public abstract StateManager getStateManager()

        リクエスト処理のライフサイクルのビューを復元し、レスポンスのレンダリング・フェーズで利用される StateManager インスタンスを返します。明示的に設定されていない場合は、Jakarta Faces Specification の StateManager の説明で説明されている機能を実行するデフォルトの実装を提供する必要があります。

        戻り値:
        状態のマネージャー。
      • setStateManager

        public abstract void setStateManager​(StateManager manager)

        リクエスト処理ライフサイクルのビュー復元フェーズとレスポンスのレンダリングフェーズで使用される StateManager インスタンスを設定します。

        パラメーター:
        manager - 新しい StateManager インスタンス
        例外:
        IllegalStateExceptionSE - このアプリケーションの Lifecycle インスタンスによって少なくとも 1 つのリクエストが処理された後にこのメソッドが呼び出された場合。
        NullPointerExceptionSE - manager が null の場合
      • addBehavior

        public void addBehavior​(StringSE behaviorId,
                                StringSE behaviorClass)

        対応する Behavior クラスの名前への動作 ID の新しいマッピングを登録します。これにより、createBehavior() への後続の呼び出しが Behavior インスタンスのファクトリとして機能できるようになります。

        パラメーター:
        behaviorId - 登録する動作 ID
        behaviorClass - 対応する Behavior 実装の完全修飾クラス名
        例外:
        NullPointerExceptionSE - behaviorId または behaviorClass が null の場合
        導入:
        2.0
      • createBehavior

        public Behavior createBehavior​(StringSE behaviorId)
                                throws FacesException

        インスタンス化とは、指定された動作 ID の addBehavior() の前回の呼び出しで指定したクラスの新しい Behavior インスタンスを返します。

        パラメーター:
        behaviorId - 新しい Behavior インスタンスを作成して返す動作 ID
        戻り値:
        行動。
        例外:
        FacesException - Behavior を作成できない場合
        NullPointerExceptionSE - behaviorId が null の場合
      • getBehaviorIds

        public IteratorSE<StringSE> getBehaviorIds()

        この Application に現在登録されている一連の動作 ID に対して Iterator を返します。

        戻り値:
        動作 ID を持つイテレータ。
      • addComponent

        public abstract void addComponent​(StringSE componentType,
                                          StringSE componentClass)

        コンポーネント型の新しいマッピングを、対応する UIComponent クラスの名前に登録します。これにより、createComponent() への後続の呼び出しが UIComponent インスタンスのファクトリとして機能できるようになります。

        パラメーター:
        componentType - 登録するコンポーネント型
        componentClass - 対応する UIComponent 実装の完全修飾クラス名
        例外:
        NullPointerExceptionSE - componentType または componentClass が null の場合
      • createComponent

        public abstract UIComponent createComponent​(StringSE componentType)
                                             throws FacesException

        インスタンス化とは、指定されたコンポーネント型の addComponent() の前回の呼び出しで指定したクラスの新しい UIComponent インスタンスを返します。

        コンポーネントインスタンスが返される前に、ListenerFor(または ListenersFor)または ResourceDependency(または ResourceDependencies)アノテーションの存在をインスペクションする必要があります。これらのアノテーションのいずれかが存在する場合、このメソッドから返される前に、ListenerFor または ResourceDependency にリストされているアクションをコンポーネントに対して実行する必要があります。createComponent のこのバリアントは、前述のアノテーションのいずれかについて返されるコンポーネントについて Renderer をインスペクションしてはなりません。このようなインスペクションは、createComponent(ValueExpression, FacesContext, String, String) または createComponent(FacesContext, String, String) の状態です。

        パラメーター:
        componentType - 新しい UIComponent インスタンスを作成して返すコンポーネント型
        戻り値:
        UI コンポーネント。
        例外:
        FacesException - 指定した型の UIComponent を作成できない場合
        NullPointerExceptionSE - componentType が null の場合
      • createComponent

        public UIComponent createComponent​(ValueExpression componentExpression,
                                           FacesContext context,
                                           StringSE componentType)
                                    throws FacesException

        指定された ValueExpression で getValue() メソッドを呼び出します。UIComponent インスタンスを返す場合は、このメソッドの値として返します。そうでない場合は、指定されたコンポーネント型の新しい UIComponent インスタンスをインスタンス化し、新しいコンポーネントを指定された ValueExpression の setValue() メソッドに渡して、それを返します。

        コンポーネントインスタンスが返される前に、ListenerFor(または ListenersFor)または ResourceDependency(または ResourceDependencies)アノテーションの存在をインスペクションする必要があります。これらのアノテーションのいずれかが存在する場合、このメソッドから返される前に、ListenerFor または ResourceDependency にリストされているアクションをコンポーネントに対して実行する必要があります。createComponent のこのバリアントは、前述のアノテーションのいずれかについて返されるコンポーネントについて Renderer をインスペクションしてはなりません。このようなインスペクションは、createComponent(ValueExpression, FacesContext, String, String) または createComponent(FacesContext, String, String) の状態です。

        Application を装飾するユーザーが引き続き機能できるように、UnsupportedOperationException をスローするデフォルトの実装が提供されています。

        パラメーター:
        componentExpression - コンポーネント値式を表す ValueExpression (通常、カスタムタグの component 属性によって指定されます)
        context - 現在のリクエストの FacesContext
        componentType - ValueExpression がコンポーネントインスタンスを返さない場合に作成するコンポーネント型
        戻り値:
        UI コンポーネント。
        例外:
        FacesException - UIComponent を作成できない場合
        NullPointerExceptionSE - パラメーターが null の場合
        導入:
        1.2
      • createComponent

        public UIComponent createComponent​(ValueExpression componentExpression,
                                           FacesContext context,
                                           StringSE componentType,
                                           StringSE rendererType)

        createComponent(ValueExpression, FacesContext, String) と同様ですが、返されるコンポーネントの Renderer を調べて、そのメソッドのドキュメントで指定されている createComponent(ValueExpression, FacesContext, String) に記載されているアノテーションを確認する必要があります。インスペクションする Renderer インスタンスは、FacesContext.getRenderKit() を呼び出し、結果に対して RenderKit.getRenderer(java.lang.String, java.lang.String) を呼び出し、最初の引数として引数 componentType を渡し、新しく作成されたコンポーネントで UIComponent.getFamily() を呼び出した結果を 2 番目の引数として取得する必要があります。そのような Renderer が見つからない場合は、有用なエラーメッセージとともにメッセージをログに記録する必要があります。それ以外の場合は、新しく作成された UIComponent インスタンスで UIComponent.setRendererType(java.lang.String) を呼び出し、引数 rendererType を引数として渡す必要があります。

        Application を装飾するユーザーが引き続き機能できるように、UnsupportedOperationException をスローするデフォルトの実装が提供されています。

        パラメーター:
        componentExpression - コンポーネント値式を表す ValueExpression (通常、カスタムタグの component 属性によって指定されます)
        context - 現在のリクエストの FacesContext
        componentType - ValueExpression がコンポーネントインスタンスを返さない場合に作成するコンポーネント型
        rendererType - このコンポーネントをレンダリングする Renderer のレンダラー型。このパラメーターには、null 値を受け入れる必要があります。
        戻り値:
        UI コンポーネント。
        例外:
        FacesException - UIComponent を作成できない場合
        NullPointerExceptionSE - パラメーター componentExpressioncontextcomponentType のいずれかが null である場合
        導入:
        2.0
      • createComponent

        public UIComponent createComponent​(FacesContext context,
                                           StringSE componentType,
                                           StringSE rendererType)

        createComponent(String) と同様ですが、返されるコンポーネントの Renderer を調べて、そのメソッドのドキュメントで指定されている createComponent(ValueExpression, FacesContext, String) に記載されているアノテーションを確認する必要があります。インスペクションする Renderer インスタンスは、FacesContext.getRenderKit() を呼び出し、結果に対して RenderKit.getRenderer(java.lang.String, java.lang.String) を呼び出し、最初の引数として引数 componentType を渡し、新しく作成されたコンポーネントで UIComponent.getFamily() を呼び出した結果を 2 番目の引数として取得する必要があります。そのような Renderer が見つからない場合は、有用なエラーメッセージとともにメッセージをログに記録する必要があります。それ以外の場合は、新しく作成された UIComponent インスタンスで UIComponent.setRendererType(java.lang.String) を呼び出し、引数 rendererType を引数として渡す必要があります。

        Application を装飾するユーザーが機能を継続できるように、UnsupportedOperationException をスローするデフォルトの実装が提供されています

        .
        パラメーター:
        context - 現在のリクエストの FacesContext
        componentType - 作成するコンポーネント型
        rendererType - このコンポーネントをレンダリングする Renderer のレンダラー型。このパラメーターには、null 値を受け入れる必要があります。
        戻り値:
        UI コンポーネント。
        例外:
        FacesException - UIComponent を作成できない場合
        NullPointerExceptionSE - パラメーター context または componentType のいずれかが null である場合
        導入:
        2.0
      • createComponent

        public UIComponent createComponent​(FacesContext context,
                                           Resource componentResource)

        インスタンス化とは、引数 Resource から新しい UIComponent インスタンスを返します。UIComponent をインスタンス化して返すには、意味的に次と同等のアルゴリズムに従う必要があります。

        • ViewHandler.getViewDeclarationLanguage(jakarta.faces.context.FacesContext, java.lang.String) を呼び出して、この Application インスタンスの ViewDeclarationLanguage への参照を取得し、引数 FacesContextUIViewRootUIViewRoot.getViewId() を呼び出して見つかった viewId を渡します。

        • ViewDeclarationLanguage.getComponentMetadata(jakarta.faces.context.FacesContext, jakarta.faces.application.Resource) を呼び出し、facesContext および componentResource 引数をこのメソッドに渡すことにより、この複合コンポーネントの複合コンポーネントメタデータへの参照を取得します。このバージョンの Jakarta Faces Specification は、コンポーネントメタデータへの API として JavaBeans を使用します。

        • コンポーネントのメタデータから BeanDescriptor を取得し、引数として UIComponent.COMPOSITE_COMPONENT_TYPE_KEY を渡してその getValue() メソッドを呼び出すことにより、コンポーネントの作成者がこのコンポーネントインスタンスに対して componentType を宣言しているかどうかを判断します。null でない場合、その結果は、この Resource コンポーネント用に作成される UIComponent の component-type を値とする ValueExpression でなければなりません。createComponent(java.lang.String) にコールスルーしてコンポーネントを作成します。

        • それ以外の場合は、ViewDeclarationLanguage.getScriptComponentResource(jakarta.faces.context.FacesContext, jakarta.faces.application.Resource) を呼び出して、この Resource のスクリプトベースのコンポーネントが見つかるかどうかを確認します。結果が非 null で、コンテンツ型 text/javascript を満たす言語で記述されたスクリプトである場合、スクリプトリソースから UIComponent インスタンスを作成します。

        • それ以外の場合は、library-name を引数 componentResource で Resource.getLibraryName() を呼び出してからの戻り値とし、resource-name を引数 componentResourceResource.getResourceName() を呼び出してからの戻り値とします。resource-name からファイル拡張子を削除して完全修飾 Java クラス名を作成し、fqcn を library-name + "." + resource-name にします。fqcn という名前のクラスが見つからない場合は、もせずに次の手順に進みます。InstantiationExceptionIllegalAccessExceptionClassCastException のいずれかがスローされた場合は、例外を FacesException でラップして、再スローします。他の例外がスローされた場合は、例外をログに記録して、次の手順に進みます。

        • 前の手順のいずれでも UIComponent インスタンスが生成されなかった場合は、"jakarta.faces.NamingContainer" を引数として渡して createComponent(java.lang.String) を呼び出します。

        • UIComponent インスタンスで UIComponent.setRendererType(java.lang.String) を呼び出し、引数として "jakarta.faces.Composite" を渡します。

        • 引数 Resource を、キー Resource.COMPONENT_RESOURCE_KEY の UIComponent の属性 Map に格納します。

        • 複合コンポーネントのメタデータを、キー UIComponent.BEANINFO_KEY の UIComponent の属性 Map に格納します。

        コンポーネントインスタンスが返される前に、ListenerFor アノテーションの存在をインスペクションする必要があります。このアノテーションが存在する場合、このメソッドから返される前に、ListenerFor にリストされているアクションをコンポーネントに対して実行する必要があります。

        Application を装飾するユーザーが引き続き機能できるように、UnsupportedOperationException をスローするデフォルトの実装が提供されています。

        パラメーター:
        context - 現在のリクエストの FacesContext
        componentResource - コンポーネントの実装を提供するソースファイルを指す Resource
        戻り値:
        UI コンポーネント。
        例外:
        FacesException - Resource から UIComponent を作成できない場合
        NullPointerExceptionSE - パラメーターが null の場合
        NullPointerExceptionSE - 何らかの理由で、上記のように ViewDeclarationLanguage インスタンスを取得できない場合。
        導入:
        2.0
      • getComponentTypes

        public abstract IteratorSE<StringSE> getComponentTypes()

        この Application に対して現在定義されているコンポーネント型のセットに対して Iterator を返します。

        戻り値:
        コンポーネント型のイテレータ。
      • addConverter

        public abstract void addConverter​(StringSE converterId,
                                          StringSE converterClass)

        対応する Converter クラスの名前へのコンバーター ID の新しいマッピングを登録します。これにより、createConverter() への後続の呼び出しが Converter インスタンスのファクトリとして機能できるようになります。

        パラメーター:
        converterId - 登録するコンバーター ID
        converterClass - 対応する Converter 実装の完全修飾クラス名
        例外:
        NullPointerExceptionSE - converterId または converterClass が null の場合
      • addConverter

        public abstract void addConverter​(ClassSE<?> targetClass,
                                          StringSE converterClass)

        指定されたターゲットクラスの変換を実行できる新しいコンバータークラスを登録します。

        パラメーター:
        targetClass - このコンバーターが登録されているクラス
        converterClass - 対応する Converter 実装の完全修飾クラス名
        例外:
        NullPointerExceptionSE - targetClass または converterClass が null の場合
      • createConverter

        public abstract Converter createConverter​(StringSE converterId)

        インスタンス化とは、指定されたコンバーター ID の addConverter() の前回の呼び出しで指定したクラスの新しい Converter インスタンスを返します。

        "jakarta.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE" アプリケーション構成パラメーターの値の String 表現の toLowerCase() が "true" (引用符なし)であり、返される Converter インスタンスが DateTimeConverter のインスタンスである場合、DateTimeConverter.setTimeZone(java.util.TimeZone) を呼び出して、TimeZone.getDefault() からの戻り値を渡す必要があります。

        引数 converter は、ResourceDependency アノテーションの存在をインスペクションする必要があります。ResourceDependency アノテーションが存在する場合は、ResourceDependency で説明されているアクションを実行する必要があります。ResourceDependency アノテーションが存在しない場合は、引数 converter をインスペクションして ResourceDependencies アノテーションが存在するかどうかを確認する必要があります。ResourceDependencies アノテーションが存在する場合は、ResourceDependencies で説明されているアクションを実行する必要があります。

        パラメーター:
        converterId - 新しい Converter インスタンスを作成して返すコンバーター ID
        戻り値:
        コンバーター。
        例外:
        FacesException - Converter を作成できない場合
        NullPointerExceptionSE - converterId が null の場合
      • createConverter

        public abstract Converter createConverter​(ClassSE<?> targetClass)

        インスタンス化とは、指定された型のオブジェクトのための変換を行うことができるように自分自身を登録したクラスの新しい Converter インスタンスを返します。そのような Converter クラスを識別できない場合は、null を返します。

        適切な Converter クラスを見つけるために、次のアルゴリズムが実行され、適切な Converter クラスが見つかるとすぐに停止します。

        • ターゲットクラス自体に登録されている Converter を見つけます。
        • ターゲットクラスによって(直接的または間接的に)実装されているインターフェースに登録されている Converter を見つけます。
        • ターゲットクラスのスーパークラス(存在する場合)に登録されている Converter を見つけて、継承階層を再帰的に処理します。

        Converter に Class を受け入れる単一の引数コンストラクターがある場合は、そのコンストラクターを使用して Converter をインスタンス化し、引数 targetClass を唯一の引数として渡します。それ以外の場合は、引数なしのコンストラクターを使用してください。

        "jakarta.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE" アプリケーション構成パラメーターの値の String 表現の toLowerCase() が "true" (引用符なし)であり、返される Converter インスタンスが DateTimeConverter のインスタンスである場合、DateTimeConverter.setTimeZone(java.util.TimeZone) を呼び出して、TimeZone.getDefault() からの戻り値を渡す必要があります。

        パラメーター:
        targetClass - Converter を返すターゲットクラス
        戻り値:
        コンバーター。
        例外:
        FacesException - Converter を作成できない場合
        NullPointerExceptionSE - targetClass が null の場合
      • getConverterIds

        public abstract IteratorSE<StringSE> getConverterIds()

        この Application の現在登録されているコンバーター ID のセットに対して Iterator を返します。

        戻り値:
        コンバーター ID を持つイテレーター。
      • getConverterTypes

        public abstract IteratorSE<ClassSE<?>> getConverterTypes()

        Converter クラスが明示的に登録されている Class インスタンスのセットに対して Iterator を返します。

        戻り値:
        コンバーター型のイテレーター。
      • addDefaultValidatorId

        public void addDefaultValidatorId​(StringSE validatorId)

        ビュー内のすべての UIInput コンポーネントに適用される ID でバリデーターを登録します。このロールを最も頻繁に果たすバリデーターは BeanValidator です。このメソッドの使用契約は、バリデーターが通常の "by-id" 登録メカニズムを使用して登録されていることを前提としています。

        Application を装飾するユーザーが引き続き作業できるように、アクションを実行しない実装が提供されます。

        パラメーター:
        validatorId - バリデータ ID。
        導入:
        2.0
      • getDefaultValidatorInfo

        public MapSE<StringSE,​StringSE> getDefaultValidatorInfo()

        現在登録されているデフォルトのバリデーター ID のセットとこの Application のクラス名に対して不変の Map を返します。

        Application を装飾するユーザーが引き続き作業できるように、Collections.emptyMap を返す実装が提供されます。

        戻り値:
        デフォルトのバリデーター情報のマップ。
        導入:
        2.0
      • getExpressionFactory

        public ExpressionFactory getExpressionFactory()

        このアプリケーションの ExpressionFactory インスタンスを返します。このインスタンスは、コンビニエンスメソッド evaluateExpressionGet(jakarta.faces.context.FacesContext, java.lang.String, java.lang.Class<? extends T>) によって使用されます。

        実装は、jakarta.el.ELManager.getExpressionFactory() を呼び出して Expression Language コンテナーから ExpressionFactory を返す必要があります。

        Application を装飾するユーザーが引き続き作業できるように、UnsupportedOperationException をスローする実装が提供されます。

        戻り値:
        式ファクトリ。
        導入:
        1.2
      • getSupportedLocales

        public abstract IteratorSE<LocaleSE> getSupportedLocales()

        このアプリケーションでサポートされている Locale を介して Iterator を返します。

        戻り値:
        サポートされているロケールのイテレータ。
      • setSupportedLocales

        public abstract void setSupportedLocales​(CollectionSE<LocaleSE> locales)

        このアプリケーションでサポートされる Locale を表す Locale インスタンスを設定します。

        パラメーター:
        locales - このアプリケーションでサポートされている Locale のセット
        例外:
        NullPointerExceptionSE - 引数 newLocales が null の場合。
      • addELContextListener

        public void addELContextListener​(ELContextListener listener)

        Faces アプリケーションが ELContext インスタンスの作成時に通知される ELContextListener を登録する方法を提供します。このリスナーは、リクエストごとに 1 回呼び出されます。

        Application を装飾するユーザーが引き続き作業できるように、UnsupportedOperationException をスローする実装が提供されます。

        パラメーター:
        listener - 追加する Jakarta Expression Language コンテキストリスナー。
        導入:
        1.2
      • removeELContextListener

        public void removeELContextListener​(ELContextListener listener)

        ELContextListener のリストから引数 listener を削除します。listener が null の場合、例外はスローされず、アクションは実行されません。listener がリストにない場合、例外はスローされず、アクションは実行されません。

        Application を装飾するユーザーが引き続き作業できるように、UnsupportedOperationException をスローする実装が提供されます。

        パラメーター:
        listener - 削除する Jakarta Expression Language コンテキストリスナー。
        導入:
        1.2
      • getELContextListeners

        public ELContextListener[] getELContextListeners()

        addELContextListener(jakarta.el.ELContextListener) が呼び出されていない場合、このメソッドは空の配列を返す必要があります。

        それ以外の場合は、addELContextListener(jakarta.el.ELContextListener) の呼び出しによって追加されたリスナーのリストを表す配列を返します。

        Application を装飾するユーザーが引き続き作業できるように、UnsupportedOperationException をスローする実装が提供されます。

        戻り値:
        Jakarta Expression Language コンテキストリスナーの配列。
        導入:
        1.2
      • addValidator

        public abstract void addValidator​(StringSE validatorId,
                                          StringSE validatorClass)

        対応する Validator クラスの名前へのバリデータ ID の新しいマッピングを登録します。これにより、createValidator() への後続の呼び出しが Validator インスタンスのファクトリとして機能できるようになります。

        パラメーター:
        validatorId - 登録するバリデータ ID
        validatorClass - 対応する Validator 実装の完全修飾クラス名
        例外:
        NullPointerExceptionSE - validatorId または validatorClass が null の場合
      • createValidator

        public abstract Validator createValidator​(StringSE validatorId)
                                           throws FacesException

        インスタンス化とは、指定されたバリデータ ID の addValidator() の前回の呼び出しで指定したクラスの新しい Validator インスタンスを返します。

        引数 validator は、ResourceDependency アノテーションの存在をインスペクションする必要があります。ResourceDependency アノテーションが存在する場合は、ResourceDependency で説明されているアクションを実行する必要があります。ResourceDependency アノテーションが存在しない場合は、引数 validator をインスペクションして ResourceDependencies アノテーションが存在するかどうかを確認する必要があります。ResourceDependencies アノテーションが存在する場合は、ResourceDependencies で説明されているアクションを実行する必要があります。

        パラメーター:
        validatorId - 新しい Validator インスタンスを作成して返すためのバリデータ ID
        戻り値:
        バリデーター。
        例外:
        FacesException - 指定した ID の Validator を作成できない場合
        NullPointerExceptionSE - validatorId が null の場合
      • getValidatorIds

        public abstract IteratorSE<StringSE> getValidatorIds()

        この Application の現在登録されているバリデーター ID のセットに対して Iterator を返します。

        戻り値:
        バリデータ ID のイテレータ。
      • publishEvent

        public void publishEvent​(FacesContext context,
                                 ClassSE<? extends SystemEvent> systemEventClass,
                                 ObjectSE source)

        FacesContext.isProcessingEvents() が true であり、systemEventClass で表される型のイベントのリスナーが 1 つ以上ある場合は、それらのリスナーを呼び出し、source をイベントのソースとして渡します。実装は、特定の systemEventClass および source のリスナーがインストールされているかどうかを判断する際に可能な限り高速である必要があり、そのような判断が行われるとすぐに戻る必要があります。publishEvent の実装は、リスナーインスタンスの保存と取得に関して subscribeToEvent(java.lang.Class<? extends jakarta.faces.event.SystemEvent>, java.lang.Class<?>, jakarta.faces.event.SystemEventListener) に記載されている要件を満たす必要があります。具体的には、subscribeToEvent(Class,Class,SystemEventListener) が呼び出された場合、sourceClass 引数は、publishEvent() の呼び出しで source 引数の Class と正確に一致する必要があります。実装は、イベントの公開先のリスナーを見つけるために、subscribeToEvent(Class,Class,SystemEventListener) に渡された sourceClass と publishEvent() に渡された sourceClass の間の一致を探すときに、継承階層インスペクションを実行してはなりません。source 引数の Class が、リスナーが subscribeToEvent() を使用してサブスクライブされたときに使用された sourceClass の Class と一致しない場合、publishEvent(FacesContext,Class,Class,Object) を使用して、リスナーのルックアップと一致を実行するために使用される Class を提供できます。

        デフォルトの実装では、リスナーインスタンスを見つけて呼び出すために、以下と意味的に同等のアルゴリズムを実装する必要があります。

        processListener メソッドを呼び出す行為によって AbortProcessingException がスローされた場合、リスナーの処理を中止し、このイベントのリスナーのそれ以上の処理を行わず、例外を Level.SEVERE でログに記録する必要があります。

        アルゴリズム traverseListenerList: リスト内のリスナーごとに

        • source 引数を渡して、SystemEventListener.isListenerForSource(java.lang.Object) を呼び出します。これが false を返す場合は、リスナーに対して何も実行しないでください。

        • それ以外の場合、リスナーインスタンスに渡されるイベントがまだ構築されていない場合は、Object を受け取る 1 引数コンストラクターに引数として source を渡して、イベントを構築します。この同じイベントインスタンスをすべてのリスナーインスタンスに渡す必要があります。

        • SystemEvent.isAppropriateListener(jakarta.faces.event.FacesListener) を呼び出し、リスナーインスタンスを引数として渡します。これが false を返す場合は、リスナーに対して何も実行しないでください。

        • SystemEvent.processListener(jakarta.faces.event.FacesListener) を呼び出し、リスナーインスタンスを渡します。

        Application を装飾するユーザーが機能を継続できるように、UnsupportedOperationException をスローするデフォルトの実装が提供されています

        .
        パラメーター:
        context - 現在のリクエストの FacesContext 
        systemEventClass - 公開されているイベントの Class
        source - 型 systemEventClass のイベントのソース。
        例外:
        NullPointerExceptionSE - contextsystemEventClasssource のいずれかが null の場合
        導入:
        2.0
      • publishEvent

        public void publishEvent​(FacesContext context,
                                 ClassSE<? extends SystemEvent> systemEventClass,
                                 ClassSE<?> sourceBaseType,
                                 ObjectSE source)

        このメソッドは、source 引数の Class を使用する代わりに、ランタイムが引数 sourceBaseType を使用して一致するリスナーを検索する必要があることを除いて、publishEvent(FacesContext,Class,Object) とまったく同じように機能します。

        Application を装飾するユーザーが機能を継続できるように、UnsupportedOperationException をスローするデフォルトの実装が提供されています

        .
        パラメーター:
        context - 現在のリクエストの FacesContext 
        systemEventClass - 公開されているイベントの Class
        sourceBaseType - このイベントの公開先のリスナーを検索するために使用する必要があるソースイベントの Class。この引数が null の場合、source.getClass() からの戻り値を sourceBaseType として使用する必要があります。
        source - 型 systemEventClass のイベントのソース。
        例外:
        NullPointerExceptionSE - sourceBaseType 以外の引数が null の場合
        導入:
        2.0
      • subscribeToEvent

        public void subscribeToEvent​(ClassSE<? extends SystemEvent> systemEventClass,
                                     ClassSE<?> sourceClass,
                                     SystemEventListener listener)

        引数 listener で参照されるリスナーインスタンスを、型 sourceClass のオブジェクトから発生する型 systemEventClass のイベントのリスナーとしてアプリケーションにインストールします。

        引数 sourceClass が非 nullsourceClasssystemEventClass の場合は、systemEventClass および sourceClass によって参照される Class のインスタンスを指定して publishEvent(jakarta.faces.context.FacesContext, java.lang.Class<? extends jakarta.faces.event.SystemEvent>, java.lang.Object) を実装することにより、listener をすばやく検索できるように、引数 listener をアプリケーションに格納するために nullsourceClasssystemEventClass を使用する必要があります。引数 sourceClass が null の場合、systemEventClass のみが指定された publishEvent(jakarta.faces.context.FacesContext, java.lang.Class<? extends jakarta.faces.event.SystemEvent>, java.lang.Object) の実装によって、listener が検出可能である必要があります。

        このメソッドへの以前の呼び出しによってサブスクライブされたイベントの処理に、このメソッドを呼び出すことは有効です。

        パラメーター:
        systemEventClass - listener を発生させる必要があるイベントの Class 
        sourceClass - 型 systemEventClass のイベントを発生させるインスタンスの Classnull の可能性があります。
        listener - 型 systemEventClass のイベントが発生したときに SystemEventListener.processEvent(jakarta.faces.event.SystemEvent) メソッドを呼び出す必要がある SystemEventListener の実装。
        例外:
        NullPointerExceptionSE - systemEventClass または listener の任意の組み合わせが null である場合。
        導入:
        2.0
      • unsubscribeFromEvent

        public void unsubscribeFromEvent​(ClassSE<? extends SystemEvent> systemEventClass,
                                         ClassSE<?> sourceClass,
                                         SystemEventListener listener)

        型 sourceClass のオブジェクトから発生する型 systemEventClass のイベントのリスナーとして、引数 listener によって参照されるリスナーインスタンスをアプリケーションから削除します。リスナーの保管方法、リスナーを削除する方法の仕様については、subscribeToEvent(Class, Class, jakarta.faces.event.SystemEventListener) を参照してください。

        このメソッドを呼び出すことが有効な場合に関する追加要件については、subscribeToEvent(java.lang.Class,java.lang.Class,jakarta.faces.event.SystemEventListener) を参照してください。

        パラメーター:
        systemEventClass - listener を発生させる必要があるイベントの Class 
        sourceClass - 型 systemEventClass のイベントを発生させるインスタンスの Classnull の可能性があります。
        listener - 内部データ構造から削除する SystemEventListener の実装。
        例外:
        NullPointerExceptionSE - contextsystemEventClasslistener の任意の組み合わせが null である場合。
        導入:
        2.0
      • setSearchExpressionHandler

        public void setSearchExpressionHandler​(SearchExpressionHandler searchExpressionHandler)

        アプリケーションが使用する SearchExpressionHandler インスタンスを設定します。

        パラメーター:
        searchExpressionHandler - SearchExpressionHandler
        例外:
        NullPointerExceptionSE - searchExpressionHandler が null の場合
        IllegalStateExceptionSE - このアプリケーションの Lifecycle インスタンスによって少なくとも 1 つのリクエストが処理された後にこのメソッドが呼び出された場合。
        導入:
        2.3
      • addSearchKeywordResolver

        public void addSearchKeywordResolver​(SearchKeywordResolver resolver)

        引数 resolver をリゾルバーチェーンの先頭に追加します。

        この方法で登録された SearchKeywordResolver は、一度登録すると削除できません。

        デフォルトの実装は UnsupportedOperationException をスローし、Application を継承する既存のアプリケーションを壊さないという唯一の目的のために提供されています。

        パラメーター:
        resolver - 追加する SearchKeywordResolver。
        例外:
        IllegalStateExceptionSE - FacesServlet への最初のリクエストが処理された後に呼び出された場合。
        NullPointerExceptionSE - リゾルバーが null の場合。
        導入:
        2.3
      • getSearchKeywordResolver

        public SearchKeywordResolver getSearchKeywordResolver()

        すべての検索キーワード解決に使用されるシングルトン SearchKeywordResolver インスタンスを返します。これは実際には複合 SearchKeywordResolver のインスタンスであり、次の SearchKeywordResolver インスタンスを次の順序で含める必要があります。

        1. アプリケーション構成リソースの <search-keyword-resolver> 要素を使用して宣言された SearchKeywordResolver インスタンス。

        2. addSearchKeywordResolver(jakarta.faces.component.search.SearchKeywordResolver) の呼び出しによって追加された SearchKeywordResolver インスタンス。

        3. @all@child(n)@form@id(...)@namingcontainer@next@none@parent@previous@root@this の SearchKeywordResolver 実装。

        デフォルトの実装は UnsupportedOperationException をスローし、Application を継承する既存のアプリケーションを壊さないという唯一の目的のために提供されています。

        戻り値:
        SearchKeywordResolver
        導入:
        2.3