public abstract class Application extends ObjectSE
Application は Web アプリケーションごとのシングルトンオブジェクトを表し、Jakarta Server Faces(または拡張機能を提供したい実装)に基づくアプリケーションは、Jakarta Server Faces に必要な機能を提供するアプリケーション全体のシングルトンを登録できます。各オブジェクトのデフォルトの実装は、アプリケーションが動作をカスタマイズすることを選択しない場合のために提供されています。
Application
のインスタンスは、ApplicationFactory
の getApplication()
メソッドを呼び出すことによって作成されます。このインスタンスは共有されているため、スレッドセーフな方法で実装する必要があります。
アプリケーションは、Faces 構成ファイルで指定されたいくつかの型のオブジェクトのファクトリとしても機能します。createComponent(java.lang.String)
、createConverter(java.lang.String)
、createValidator(java.lang.String)
を参照してください。
コンストラクターと説明 |
---|
Application() |
修飾子と型 | メソッドと説明 |
---|---|
void | addBehavior(StringSE behaviorId, StringSE behaviorClass) 対応する Behavior クラスの名前に動作 ID の新しいマッピングを登録します。 |
abstract void | addComponent(StringSE componentType, StringSE componentClass) コンポーネント型の新しいマッピングを、対応する UIComponent クラスの名前に登録します。 |
abstract void | addConverter(ClassSE<?> targetClass, StringSE converterClass) 指定されたターゲットクラスの変換を実行できる新しいコンバータークラスを登録します。 |
abstract void | addConverter(StringSE converterId, StringSE converterClass) コンバーター ID の対応する Converter クラスの名前への新しいマッピングを登録します。 |
void | addDefaultValidatorId(StringSE validatorId) ビュー内のすべての |
void | addELContextListener(ELContextListener listener) Faces アプリケーションが ELContext インスタンスの作成時に通知される ELContextListener を登録する方法を提供します。 |
void | addELResolver(ELResolver resolver) Jakarta Server Faces Specification のセクション JSF.5.5.1 で指定され引数 resolver はリゾルバーチェーンに付加させます。 |
void | addSearchKeywordResolver(SearchKeywordResolver resolver) 引数 |
abstract void | addValidator(StringSE validatorId, StringSE validatorClass) バリデーター ID の対応する Validator クラスの名前への新しいマッピングを登録します。 |
Behavior | createBehavior(StringSE behaviorId) |
UIComponent | createComponent(FacesContext context, Resource componentResource) インスタンス化とは、引数 |
UIComponent | createComponent(FacesContext context, StringSE componentType, StringSE rendererType) 返されるコンポーネントの |
abstract UIComponent | createComponent(StringSE componentType) |
abstract UIComponent | createComponent(ValueBinding componentBinding, FacesContext context, StringSE componentType) 使用すべきではありません。 |
UIComponent | createComponent(ValueExpression componentExpression, FacesContext context, StringSE componentType) |
UIComponent | createComponent(ValueExpression componentExpression, FacesContext context, StringSE componentType, StringSE rendererType) 返されるコンポーネントの |
abstract Converter | createConverter(ClassSE<?> targetClass) インスタンス化とは、指定された型のオブジェクトのための変換を行うことができるように自分自身を登録したクラスの新しい Converter インスタンスを返します。 |
abstract Converter | createConverter(StringSE converterId) |
abstract MethodBinding | createMethodBinding(StringSE ref, ClassSE<?>[] params) 使用すべきではありません。 |
abstract Validator | createValidator(StringSE validatorId) |
abstract ValueBinding | createValueBinding(StringSE ref) 使用すべきではありません。 これは、 getExpressionFactory() を呼び出してから ExpressionFactory.createValueExpression(javax.el.ELContext, java.lang.String, java.lang.Class<?>) を呼び出すことで置き換えられました。 |
<T> T | evaluateExpressionGet(FacesContext context, StringSE expression, ClassSE<? extends T> expectedType) 式を評価して値を取得します。 |
abstract ActionListener | getActionListener() |
IteratorSE<StringSE> | getBehaviorIds() この Application に現在登録されている一連の動作 ID に対して Iterator を返します。 |
abstract IteratorSE<StringSE> | getComponentTypes() この Application に対して現在定義されているコンポーネント型のセットに対して Iterator を返します。 |
abstract IteratorSE<StringSE> | getConverterIds() この Application の現在登録されているコンバーター ID のセットに対して Iterator を返します。 |
abstract IteratorSE<ClassSE<?>> | getConverterTypes() |
abstract LocaleSE | getDefaultLocale() このアプリケーションのデフォルトの Locale を返します。 |
abstract StringSE | getDefaultRenderKitId() このアプリケーションのレンダリングに使用する renderKitId を返します。 |
MapSE<StringSE, StringSE> | getDefaultValidatorInfo() 現在登録されているデフォルトのバリデーター ID のセットとこの |
ELContextListener[] | getELContextListeners() addELContextListener(javax.el.ELContextListener) が呼び出されていない場合、このメソッドは空の配列を返す必要があります。 |
ELResolver | getELResolver() すべての Jakarta Expression Language 解決に使用されるシングルトン ELResolver インスタンスを返します。 |
ExpressionFactory | getExpressionFactory() このアプリケーションの ExpressionFactory インスタンスを返します。 |
FlowHandler | getFlowHandler() このアプリケーションのスレッドセーフシングルトン |
abstract StringSE | getMessageBundle() このアプリケーションの Jakarta Server Faces メッセージに使用される ResourceBundle の完全修飾クラス名を返します。 |
abstract NavigationHandler | getNavigationHandler() この Web アプリケーションに対して呼び出されたアプリケーションアクションによって返される結果が渡される NavigationHandler インスタンスを返します。 |
ProjectStage | getProjectStage() 現在実行中のアプリケーションインスタンスのプロジェクトステージを返します。 |
abstract PropertyResolver | getPropertyResolver() 使用すべきではありません。 これは getELResolver() に置き換えられました。 |
ResourceBundleSE | getResourceBundle(FacesContext ctx, StringSE name) 指定された名前のアプリケーション構成リソースで定義されている ResourceBundle を見つけます。 |
ResourceHandler | getResourceHandler() このアプリケーションのシングルトン、ステートレス、スレッドセーフ |
SearchExpressionHandler | getSearchExpressionHandler() このアプリケーションのスレッドセーフシングルトン |
SearchKeywordResolver | getSearchKeywordResolver() すべての検索キーワードの解決に使用されるシングルトン |
abstract StateManager | getStateManager() リクエスト処理ライフサイクルのビューの復元フェーズとレスポンスのレンダリングフェーズで使用される StateManager インスタンスを返します。 |
abstract IteratorSE<LocaleSE> | getSupportedLocales() このアプリケーションでサポートされている Locale を介して Iterator を返します。 |
abstract IteratorSE<StringSE> | getValidatorIds() この Application の現在登録されているバリデーター ID のセットに対して Iterator を返します。 |
abstract VariableResolver | getVariableResolver() 使用すべきではありません。 これは getELResolver() に置き換えられました。 |
abstract ViewHandler | getViewHandler() リクエスト処理ライフサイクルのビューの復元フェーズとレスポンスのレンダリングフェーズで使用される ViewHandler インスタンスを返します。 |
void | publishEvent(FacesContext context, ClassSE<? extends SystemEvent> systemEventClass, ClassSE<?> sourceBaseType, ObjectSE source) このメソッドは、 |
void | publishEvent(FacesContext context, ClassSE<? extends SystemEvent> systemEventClass, ObjectSE source)
|
void | removeELContextListener(ELContextListener listener) ELContextListener のリストから引数 listener を削除します。 |
abstract void | setActionListener(ActionListener listener) すべての ActionSource コンポーネントに登録されるデフォルトの ActionListener を設定します。 |
abstract void | setDefaultLocale(LocaleSE locale) このアプリケーションのデフォルト Locale を設定します。 |
abstract void | setDefaultRenderKitId(StringSE renderKitId) このアプリケーションのレンダリングに使用する renderKitId を設定します。 |
void | setFlowHandler(FlowHandler newHandler)
|
abstract void | setMessageBundle(StringSE bundle) このアプリケーションの Jakarta Server Faces メッセージに使用される ResourceBundle の完全修飾クラス名を設定します。 |
abstract void | setNavigationHandler(NavigationHandler handler) この Web アプリケーションに対して呼び出されたアプリケーションアクションによって返される結果が渡される NavigationHandler インスタンスを設定します。 |
abstract void | setPropertyResolver(PropertyResolver resolver) 使用すべきではありません。 Jakarta Expression Language の実行に影響を与えるための推奨される方法は、通常の式評価の過程で考慮されるアプリケーション構成リソースの適切な場所に <el-resolver> 要素を提供することです。このメソッドは、ユーザーが addELResolver(javax.el.ELResolver) を呼び出したかのように、引数 resolver が ELResolver の実装内にラップされ、Jakarta Expression Language 解決システムに公開されるようにします。 |
void | setResourceHandler(ResourceHandler resourceHandler) リソースのマークアップのレンダリング、およびリソースを提供するためのクライアントリクエストを満たすために使用される |
void | setSearchExpressionHandler(SearchExpressionHandler searchExpressionHandler) アプリケーションが使用する |
abstract void | setStateManager(StateManager manager) リクエスト処理ライフサイクルのビューの復元フェーズとレスポンスのレンダリングフェーズで使用される StateManager インスタンスを設定します。 |
abstract void | setSupportedLocales(CollectionSE<LocaleSE> locales) このアプリケーションでサポートされる Locale を表す Locale インスタンスを設定します。 |
abstract void | setVariableResolver(VariableResolver resolver) 使用すべきではありません。 Jakarta Expression Language の実行に影響を与えるための推奨される方法は、通常の式評価の過程で考慮されるアプリケーション構成リソースの適切な場所に <el-resolver> 要素を提供することです。このメソッドは、ユーザーが addELResolver(javax.el.ELResolver) を呼び出したかのように、引数 resolver が ELResolver の実装内にラップされ、Jakarta Expression Language 解決システムに公開されるようにします。 |
abstract void | setViewHandler(ViewHandler handler) リクエスト処理ライフサイクルのビューの復元フェーズとレスポンスのレンダリングフェーズで使用される ViewHandler インスタンスを設定します。 |
void | subscribeToEvent(ClassSE<? extends SystemEvent> systemEventClass, ClassSE<?> sourceClass, SystemEventListener listener) 引数 |
void | subscribeToEvent(ClassSE<? extends SystemEvent> systemEventClass, SystemEventListener listener) 引数 |
void | unsubscribeFromEvent(ClassSE<? extends SystemEvent> systemEventClass, ClassSE<?> sourceClass, SystemEventListener listener)
|
void | unsubscribeFromEvent(ClassSE<? extends SystemEvent> systemEventClass, SystemEventListener listener) 引数 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public abstract ActionListener getActionListener()
このアプリケーションのすべての ActionSource
コンポーネントに登録されるデフォルトの ActionListener
を返します。明示的に設定しない場合は、仕様書ドキュメントの「アプリケーション統合」という章の「ActionListener プロパティ」で指定されている機能を実行するデフォルトの実装を提供する必要があります。
デフォルトの ActionListener
の仕様では、非推奨のプロパティ(action
)とクラス(MethodBinding
)の使用が必要になることに注意してください。残念ながら、デフォルトの ActionListener
は、ActionSource2
を実装せず、ActionSource
のみを実装するコンポーネントで引き続き動作する必要があるため、これが必要です。
public abstract void setActionListener(ActionListener listener)
すべての ActionSource
コンポーネントに登録されるデフォルトの ActionListener
を設定します。
listener
- 新しいデフォルトの ActionListener
NullPointerExceptionSE
- listener
が null
の場合 public abstract LocaleSE getDefaultLocale()
このアプリケーションのデフォルトの Locale
を返します。明示的に設定されていない場合、null
が返されます。
null
。public abstract void setDefaultLocale(LocaleSE locale)
このアプリケーションのデフォルト Locale
を設定します。
locale
- 新しいデフォルトの Locale
NullPointerExceptionSE
- locale
が null
の場合 public abstract StringSE getDefaultRenderKitId()
このアプリケーションのレンダリングに使用する renderKitId
を返します。明示的に設定されていない場合、null
が返されます。
null
。public abstract void setDefaultRenderKitId(StringSE renderKitId)
このアプリケーションのレンダリングに使用する renderKitId
を設定します。クライアントが同じアプリケーションで複数の RenderKit
インスタンスの使用をサポートするカスタム ViewHandler
を提供していない限り、このメソッドは、Faces リクエストが処理される前のアプリケーションの起動時にのみ呼び出す必要があります。これは現在の仕様の制限であり、将来のリリースで解除される可能性があります。
renderKitId
- 設定するレンダリングキット ID。public abstract StringSE getMessageBundle()
このアプリケーションの Jakarta Server Faces メッセージに使用される ResourceBundle
の完全修飾クラス名を返します。明示的に設定されていない場合、null
が返されます。
null
。public abstract void setMessageBundle(StringSE bundle)
このアプリケーションの Jakarta Server Faces メッセージに使用される ResourceBundle
の完全修飾クラス名を設定します。リソースバンドル名の構文の詳細については、java.util.ResourceBundle
クラスの JavaDocs を参照してください。
bundle
- 使用するリソースバンドルのベース名 NullPointerExceptionSE
- bundle
が null
の場合 public abstract NavigationHandler getNavigationHandler()
この Web アプリケーションに対して呼び出されたアプリケーションアクションによって返される結果が渡される NavigationHandler
インスタンスを返します。明示的に設定しない場合は、NavigationHandler
クラスの説明で説明されている機能を実行するデフォルトの実装を提供する必要があります。
NavigationHandler
実装は、<application>
要素内の <navigation-handler>
要素の値として完全修飾クラス名を指定することにより、アプリケーション構成リソースで宣言されます。ランタイムは、Jakarta Server Faces の他のすべてのプラグ可能なアーティファクトと同様に、デコレータパターンを使用する必要があります。
public abstract void setNavigationHandler(NavigationHandler handler)
この Web アプリケーションに対して呼び出されたアプリケーションアクションによって返される結果が渡される NavigationHandler
インスタンスを設定します。
handler
- 新しい NavigationHandler
インスタンス NullPointerExceptionSE
- handler
が null
の場合 public ResourceHandler getResourceHandler()
このアプリケーションのシングルトン、ステートレス、スレッドセーフの ResourceHandler
を返します。Jakarta Server Faces 実装は、ResourceHandler
の代替実装を宣言するための次の手法をサポートする必要があります。
ResourceHandler
実装は、<application>
要素内の <resource-handler>
要素の値として完全修飾クラス名を指定することにより、アプリケーション構成リソースで宣言されます。
上記のすべてのケースで、ランタイムは Jakarta Server Faces の他のすべてのプラガブルアーティファクトと同様に、デコレーターパターンを使用する必要があります。
Application
を装飾するユーザーが機能を継続できるように、UnsupportedOperationException
をスローするデフォルトの実装が提供されています
public void setResourceHandler(ResourceHandler resourceHandler)
リソースのマークアップのレンダリング、およびリソースを提供するためのクライアントリクエストを満たすために使用される ResourceHandler
インスタンスを設定します。
resourceHandler
- 新しい ResourceHandler
インスタンス IllegalStateExceptionSE
- このアプリケーションの Lifecycle
インスタンスによって少なくとも 1 つのリクエストが処理された後にこのメソッドが呼び出された場合。NullPointerExceptionSE
- resourceHandler
が null
の場合 public abstract PropertyResolver getPropertyResolver()
getELResolver()
に置き換えられました。 アプリケーションでプログラムによって表示される式の解決のために Faces が Jakarta Expression Language に提供する ELResolver
インスタンスをラップする PropertyResolver
インスタンスを返します。
このクラスは、カスタム PropertyResolver
が EL 解決プロセスに影響を与えることを可能にするのに役立つ何もしないようになったため、デフォルトの PropertyResolver
を返さなくなったことに注意してください。
public abstract void setPropertyResolver(PropertyResolver resolver)
<el-resolver>
要素を提供することです。この方法により、引数 resolver
が ELResolver
の実装内にラップされ、ユーザーが addELResolver(javax.el.ELResolver)
を呼び出した場合と同様に Jakarta Expression Language 解決システムに公開されるようになります。 メソッドと値のバインディングを解決するために使用される PropertyResolver
インスタンスを設定します。
このメソッドは非推奨になりましたが、実装では、引数をレガシー PropertyResolver
チェーンのヘッドとして設定し、アプリケーション構成リソースから設定された既存の値を置き換える必要があります。
アプリケーションがクライアントからリクエストを受け取った後でこのメソッドを呼び出すことは不正です。それ以降にリスナーを登録しようとした場合、何の影響もありません。
resolver
- 新しい PropertyResolver
インスタンス NullPointerExceptionSE
- resolver
が null
の場合 IllegalStateExceptionSE
- FacesServlet
への最初のリクエストが処理された後に呼び出された場合。public ResourceBundleSE getResourceBundle(FacesContext ctx, StringSE name)
指定された名前のアプリケーション構成リソースで定義されている ResourceBundle
を見つけます。名前に ResourceBundle
が定義されている場合は、現在の UIViewRoot
のロケールを使用するインスタンスを返します。
デフォルトの実装は UnsupportedOperationException
をスローし、このクラスを継承する既存のアプリケーションを壊さないという唯一の目的のために提供されています。
ctx
- Faces コンテキスト。name
- リソースバンドルの名前。FacesException
- バンドルが定義されているが解決できない場合 NullPointerExceptionSE
- ctx == null の場合 | | 名前 == nullpublic 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
をスローするデフォルトの実装が提供されています
public abstract VariableResolver getVariableResolver()
getELResolver()
に置き換えられました。 アプリケーションにプログラムで表示される式の解決のために、Faces が Jakarta Expression Language に提供する ELResolver
インスタンスをラップする VariableResolver
を返します。VariableResolver
の実装は、基礎となる ELResolver
で呼び出されるすべてのメソッドの基本引数として null
を渡す必要があります。
このメソッドはもはやデフォルトの VariableResolver
を返さないことに注意してください。そのクラスは、カスタム VariableResolver
が Jakarta Expression Language 解決プロセスに影響を与えることを可能にするのに役立つ何もしないためです。
public abstract void setVariableResolver(VariableResolver resolver)
<el-resolver>
要素を提供することです。この方法により、引数 resolver
が ELResolver
の実装内にラップされ、ユーザーが addELResolver(javax.el.ELResolver)
を呼び出した場合と同様に Jakarta Expression Language 解決システムに公開されるようになります。 メソッドと値のバインディングを解決するために参照される VariableResolver
インスタンスを設定します。
このメソッドは非推奨になりましたが、実装では、引数をレガシー VariableResolver
チェーンのヘッドとして設定し、アプリケーション構成リソースから設定された既存の値を置き換える必要があります。
アプリケーションがクライアントからリクエストを受け取った後でこのメソッドを呼び出すことは不正です。それ以降にリスナーを登録しようとした場合、何の影響もありません。
resolver
- 新しい VariableResolver
インスタンス NullPointerExceptionSE
- resolver
が null
の場合 IllegalStateExceptionSE
- FacesServlet
への最初のリクエストが処理された後に呼び出された場合。public void addELResolver(ELResolver resolver)
Jakarta Server Faces Specification のセクション JSF.5.5.1 で指定され引数 resolver
はリゾルバーチェーンに付加させます。
このメソッドで登録された ELResolver
は、いったん登録すると削除できません。
アプリケーションがクライアントからリクエストを受け取った後で ELResolver
を登録することは不正です。それ以降にリスナーを登録しようとする場合は、IllegalStateException
をスローする必要があります。この制限は、Jakarta Server Pages コンテナーが、チェーンに標準のもの以外に追加の ELResolver
がない一般的な場合に最適化できるようにするために設けられています。すでにチェーンにある CompositeELResolver
に、初期化の前または後に ELResolver
を追加することができます。
デフォルトの実装は UnsupportedOperationException
をスローし、Application
を継承する既存のアプリケーションを壊さないという唯一の目的のために提供されています。
resolver
- 追加する Jakarta Expression Language リゾルバー。IllegalStateExceptionSE
- FacesServlet
への最初のリクエストが処理された後に呼び出された場合。public ELResolver getELResolver()
すべての Jakarta Expression Language 解決に使用されるシングルトン ELResolver
インスタンスを返します。これは実際には CompositeELResolver
のインスタンスであり、次の ELResolver
インスタンスを次の順序で含める必要があります。
アプリケーション構成リソースの <el-resolver> 要素を使用して宣言された ELResolver
インスタンス。
スペックドキュメントの JSF.5 章のセクション VariableResolver ChainWrapper に従って、レガシー VariableResolver
チェーンのヘッドをラップする implementation
。
スペックドキュメントの JSF.5 章のセクション PropertyResolver ChainWrapper に従って、レガシー PropertyResolver
チェーンのヘッドをラップする implementation
。
addELResolver(javax.el.ELResolver)
の呼び出しによって追加された ELResolver
インスタンス。
デフォルトの実装は UnsupportedOperationException
をスローし、Application
を継承する既存のアプリケーションを壊さないという唯一の目的のために提供されています。
public FlowHandler getFlowHandler()
このアプリケーションのスレッドセーフなシングルトン FlowHandler
を返します。仕様のバージョン 2.2 への準拠を宣言する実装の場合、アプリケーションにフローがない場合でも、このメソッドが null
を返さないようにする必要があります。これは、アプリケーションの存続期間中に動的フローを作成できるようにするために必要です。
仕様のバージョン 2.2 への準拠を宣言するすべての実装は、このメソッドを実装する必要があります。Application
を継承するが、このメソッドをオーバーライドしない環境との下位互換性を確保するために、null
を返す実装が提供されています。Application
の装飾可能な性質により、このメソッドを呼び出すコードは常に null
の戻り値をチェックする必要があります。
public void setFlowHandler(FlowHandler newHandler)
NavigationHandler
が使用する FlowHandler
インスタンスを設定して、面フロー機能の要件を満たします。
newHandler
- 設定するフローハンドラー。NullPointerExceptionSE
- newHandler が null
の場合 IllegalStateExceptionSE
- このアプリケーションの Lifecycle
インスタンスによって少なくとも 1 つのリクエストが処理された後にこのメソッドが呼び出された場合。public abstract ViewHandler getViewHandler()
リクエスト処理のライフサイクルのビューを復元し、レスポンスのレンダリング・フェーズで利用される ViewHandler
インスタンスを返します。明示的に設定されていない場合は、JJakarta ServerFaces 仕様の ViewHandler
の説明に記載されている機能を実行するデフォルトの実装を提供する必要があります。
public abstract void setViewHandler(ViewHandler handler)
リクエスト処理ライフサイクルのビューの復元フェーズとレスポンスのレンダリングフェーズで使用される ViewHandler
インスタンスを設定します。
handler
- 新しい ViewHandler
インスタンス IllegalStateExceptionSE
- このアプリケーションの Lifecycle
インスタンスによって少なくとも 1 つのリクエストが処理された後にこのメソッドが呼び出された場合。NullPointerExceptionSE
- handler
が null
の場合 public abstract StateManager getStateManager()
リクエスト処理のライフサイクルのビューを復元し、レスポンスのレンダリング・フェーズで利用される StateManager
インスタンスを返します。明示的に設定されていない場合は、Jakarta Server Faces Specification の StateManager
の説明で説明されている機能を実行するデフォルトの実装を提供する必要があります。
public abstract void setStateManager(StateManager manager)
リクエスト処理ライフサイクルのビューの復元フェーズとレスポンスのレンダリングフェーズで使用される StateManager
インスタンスを設定します。
manager
- 新しい StateManager
インスタンス IllegalStateExceptionSE
- このアプリケーションの Lifecycle
インスタンスによって少なくとも 1 つのリクエストが処理された後にこのメソッドが呼び出された場合。NullPointerExceptionSE
- manager
が null
の場合 public void addBehavior(StringSE behaviorId, StringSE behaviorClass)
対応する Behavior
クラスの名前への動作 ID の新しいマッピングを登録します。これにより、createBehavior()
への後続の呼び出しが Behavior
インスタンスのファクトリとして機能できるようになります。
behaviorId
- 登録する動作 IDbehaviorClass
- 対応する Behavior
実装の完全修飾クラス名 NullPointerExceptionSE
- behaviorId
または behaviorClass
が null
の場合 public Behavior createBehavior(StringSE behaviorId) throws FacesException
インスタンス化とは、指定された動作 ID の addBehavior()
の前回の呼び出しで指定したクラスの新しい Behavior
インスタンスを返します。
behaviorId
- 新しい Behavior
インスタンスを作成して返す動作 IDFacesException
- Behavior
を作成できない場合 NullPointerExceptionSE
- behaviorId
が null
の場合 public IteratorSE<StringSE> getBehaviorIds()
この Application
に現在登録されている一連の動作 ID に対して Iterator
を返します。
public abstract void addComponent(StringSE componentType, StringSE componentClass)
コンポーネント型の新しいマッピングを、対応する UIComponent
クラスの名前に登録します。これにより、createComponent()
への後続の呼び出しが UIComponent
インスタンスのファクトリとして機能できるようになります。
componentType
- 登録するコンポーネント型 componentClass
- 対応する UIComponent
実装の完全修飾クラス名 NullPointerExceptionSE
- componentType
または componentClass
が null
の場合 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
インスタンスを作成して返すコンポーネント型 FacesException
- 指定した型の UIComponent
を作成できない場合 NullPointerExceptionSE
- componentType
が null
の場合 public abstract UIComponent createComponent(ValueBinding componentBinding, FacesContext context, StringSE componentType) throws FacesException
createComponent(javax.el.ValueExpression,javax.faces.context.FacesContext,java.lang.String)
に置き換えられました。 引数 componentBinding
を ValueExpression
の実装にラップし、createComponent(javax.el.ValueExpression,javax.faces.context.FacesContext,java.lang.String)
を呼び出します。
componentBinding
- コンポーネント値バインディング式を表す ValueBinding
(通常、カスタムタグの component
属性によって指定されます)context
- 現在のリクエストの FacesContext
componentType
- ValueBinding
がコンポーネントインスタンスを返さない場合に作成するコンポーネント型 FacesException
- UIComponent
を作成できない場合 NullPointerExceptionSE
- パラメーターが null
の場合 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
がコンポーネントインスタンスを返さない場合に作成するコンポーネント型 FacesException
- UIComponent
を作成できない場合 NullPointerExceptionSE
- パラメーターが null
の場合 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
値を受け入れる必要があります。FacesException
- UIComponent
を作成できない場合 NullPointerExceptionSE
- パラメーター componentExpression
、context
、componentType
のいずれかが null
である場合 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
値を受け入れる必要があります。FacesException
- UIComponent
を作成できない場合 NullPointerExceptionSE
- パラメーター context
または componentType
のいずれかが null
である場合 public UIComponent createComponent(FacesContext context, Resource componentResource)
インスタンス化とは、引数 Resource
から新しい UIComponent
インスタンスを返します。UIComponent
をインスタンス化して返すには、意味的に次と同等のアルゴリズムに従う必要があります。
ViewHandler.getViewDeclarationLanguage(javax.faces.context.FacesContext, java.lang.String)
を呼び出して、この Application
インスタンスの ViewDeclarationLanguage
への参照を取得し、引数 FacesContext
の UIViewRoot
で UIViewRoot.getViewId()
を呼び出して見つかった viewId
を渡します。
ViewDeclarationLanguage.getComponentMetadata(javax.faces.context.FacesContext, javax.faces.application.Resource)
を呼び出し、facesContext
引数と componentResource
引数をこのメソッドに渡すことにより、この複合コンポーネントの複合コンポーネントメタデータへの参照を取得します。このバージョンの Jakarta Server Faces 仕様では、コンポーネントメタデータへの API として JavaBeans を使用します。
コンポーネントのメタデータから BeanDescriptor
を取得し、引数として UIComponent.COMPOSITE_COMPONENT_TYPE_KEY
を渡してその getValue()
メソッドを呼び出すことにより、コンポーネントの作成者がこのコンポーネントインスタンスに対して componentType
を宣言しているかどうかを判断します。null
でない場合、その結果は、この Resource
コンポーネント用に作成される UIComponent
の component-type
を値とする ValueExpression
でなければなりません。createComponent(java.lang.String)
にコールスルーしてコンポーネントを作成します。
それ以外の場合は、ViewDeclarationLanguage.getScriptComponentResource(javax.faces.context.FacesContext, javax.faces.application.Resource)
を呼び出して、この Resource
のスクリプトベースのコンポーネントが見つかるかどうかを確認します。結果が非 null
であり、仕様書の JSF.4.3 にリストされている言語のいずれかで記述されたスクリプトである場合は、スクリプトリソースから UIComponent
インスタンスを作成します。
それ以外の場合は、library-name を引数 componentResource
で Resource.getLibraryName()
を呼び出してからの戻り値とし、resource-name を引数 componentResource
で Resource.getResourceName()
を呼び出してからの戻り値とします。resource-name からファイル拡張子を削除して完全修飾 Java クラス名を作成し、fqcn を library-name + "." + resource-name
にします。fqcn という名前のクラスが見つからない場合は、何もせずに次の手順に進みます。InstantiationException
、IllegalAccessException
、ClassCastException
のいずれかがスローされた場合は、例外を FacesException
でラップして、再スローします。他の例外がスローされた場合は、例外をログに記録して、次の手順に進みます。
前の手順のいずれでも UIComponent
インスタンスが生成されなかった場合は、"javax.faces.NamingContainer
" を引数として渡して createComponent(java.lang.String)
を呼び出します。
UIComponent
インスタンスで UIComponent.setRendererType(java.lang.String)
を呼び出し、引数として "javax.faces.Composite
" を渡します。
引数 Resource
を、キー Resource.COMPONENT_RESOURCE_KEY
の UIComponent
の属性 Map
に格納します。
複合コンポーネントのメタデータを、キー UIComponent.BEANINFO_KEY
の UIComponent
の属性 Map
に格納します。
コンポーネントインスタンスが返される前に、ListenerFor
アノテーションの存在をインスペクションする必要があります。このアノテーションが存在する場合、このメソッドから返される前に、ListenerFor
にリストされているアクションをコンポーネントに対して実行する必要があります。
Application
を装飾するユーザーが引き続き機能できるように、UnsupportedOperationException
をスローするデフォルトの実装が提供されています。
context
- 現在のリクエストの FacesContext
componentResource
- コンポーネントの実装を提供するソースファイルを指す Resource
。FacesException
- Resource
から UIComponent
を作成できない場合 NullPointerExceptionSE
- パラメーターが null
の場合 NullPointerExceptionSE
- 何らかの理由で、上記のように ViewDeclarationLanguage
インスタンスを取得できない場合。public abstract IteratorSE<StringSE> getComponentTypes()
この Application
に対して現在定義されているコンポーネント型のセットに対して Iterator
を返します。
public abstract void addConverter(StringSE converterId, StringSE converterClass)
対応する Converter
クラスの名前へのコンバーター ID の新しいマッピングを登録します。これにより、createConverter()
への後続の呼び出しが Converter
インスタンスのファクトリとして機能できるようになります。
converterId
- 登録するコンバーター IDconverterClass
- 対応する Converter
実装の完全修飾クラス名 NullPointerExceptionSE
- converterId
または converterClass
が null
の場合 public abstract void addConverter(ClassSE<?> targetClass, StringSE converterClass)
指定されたターゲットクラスの変換を実行できる新しいコンバータークラスを登録します。
targetClass
- このコンバーターが登録されているクラス converterClass
- 対応する Converter
実装の完全修飾クラス名 NullPointerExceptionSE
- targetClass
または converterClass
が null
の場合 public abstract Converter createConverter(StringSE converterId)
インスタンス化とは、指定されたコンバーター ID の addConverter()
の前回の呼び出しで指定したクラスの新しい Converter
インスタンスを返します。
"javax.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
インスタンスを作成して返すコンバーター IDFacesException
- Converter
を作成できない場合 NullPointerExceptionSE
- converterId
が null
の場合 public abstract Converter createConverter(ClassSE<?> targetClass)
インスタンス化とは、指定された型のオブジェクトのための変換を行うことができるように自分自身を登録したクラスの新しい Converter
インスタンスを返します。そのような Converter
クラスを識別できない場合は、null
を返します。
適切な Converter
クラスを見つけるために、次のアルゴリズムが実行され、適切な Converter
クラスが見つかるとすぐに停止します。
Converter
を見つけます。Converter
を見つけます。Converter
を見つけて、継承階層を再帰的に処理します。Converter
に Class
を受け入れる単一の引数コンストラクターがある場合は、そのコンストラクターを使用して Converter
をインスタンス化し、引数 targetClass
を唯一の引数として渡します。それ以外の場合は、引数なしのコンストラクターを使用してください。
"javax.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
の場合 public abstract IteratorSE<StringSE> getConverterIds()
この Application
の現在登録されているコンバーター ID のセットに対して Iterator
を返します。
public abstract IteratorSE<ClassSE<?>> getConverterTypes()
Converter
クラスが明示的に登録されている Class
インスタンスのセットに対して Iterator
を返します。
public void addDefaultValidatorId(StringSE validatorId)
ビュー内のすべての UIInput
コンポーネントに適用される ID でバリデーターを登録します。このロールを最も頻繁に果たすバリデーターは BeanValidator
です。このメソッドの使用契約は、バリデーターが通常の "by-id" 登録メカニズムを使用して登録されていることを前提としています。
Application
を装飾するユーザーが引き続き作業できるように、アクションを実行しない実装が提供されます。
validatorId
- バリデータ ID。public MapSE<StringSE,StringSE> getDefaultValidatorInfo()
現在登録されているデフォルトのバリデーター ID のセットとこの Application
のクラス名に対して不変の Map
を返します。
Application
を装飾するユーザーが引き続き作業できるように、Collections.emptyMap
を返す実装が提供されます。
public ExpressionFactory getExpressionFactory()
このアプリケーションの ExpressionFactory
インスタンスを返します。このインスタンスは、コンビニエンスメソッド evaluateExpressionGet(javax.faces.context.FacesContext, java.lang.String, java.lang.Class<? extends T>)
によって使用されます。
実装は、JspFactory.getDefaultFactory().getJspApplicationContext(servletContext).getExpressionFactory()
を呼び出して、Jakarta Server Pages コンテナーから ExpressionFactory
を返す必要があります。
Application
を装飾するユーザーが引き続き作業できるように、UnsupportedOperationException
をスローする実装が提供されます。
public <T> T evaluateExpressionGet(FacesContext context, StringSE expression, ClassSE<? extends T> expectedType) throws ELException
式を評価して値を取得します。
getExpressionFactory()
を呼び出してから、引数 expression
および expectedType
を渡して ExpressionFactory.createValueExpression(javax.el.ELContext, java.lang.String, java.lang.Class<?>)
を呼び出します。FacesContext.getELContext()
を呼び出し、それを ValueExpression.getValue(javax.el.ELContext)
に渡して、結果を返します。
Application
を装飾するユーザーが引き続き作業できるように、UnsupportedOperationException
をスローする実装が提供されます。
T
- 戻り値の型。context
- Faces コンテキスト。expression
- 表現。expectedType
- 予想される型。ELException
public abstract MethodBinding createMethodBinding(StringSE ref, ClassSE<?>[] params) throws ReferenceSyntaxException
getExpressionFactory()
を呼び出して ExpressionFactory.createMethodExpression(javax.el.ELContext, java.lang.String, java.lang.Class<?>, java.lang.Class<?>[])
を呼び出すことによって置き換えられました。getExpressionFactory()
を呼び出してから ExpressionFactory.createMethodExpression(javax.el.ELContext, java.lang.String, java.lang.Class<?>, java.lang.Class<?>[])
を呼び出し、指定された引数を渡して、結果を MethodBinding
実装でラップし、それを返します。
ref
- MethodBinding
インスタンスを返すメソッドバインディング式 params
- 呼び出されるメソッドのシグネチャーと互換性がなければならないパラメーターシグネチャー、またはパラメーターをとらないメソッドの場合は長さゼロの配列または null
NullPointerExceptionSE
- ref
が null
の場合 ReferenceSyntaxException
- 指定された ref
の構文が無効な場合 public abstract IteratorSE<LocaleSE> getSupportedLocales()
このアプリケーションでサポートされている Locale
を介して Iterator
を返します。
public abstract void setSupportedLocales(CollectionSE<LocaleSE> locales)
このアプリケーションでサポートされる Locale
を表す Locale
インスタンスを設定します。
locales
- このアプリケーションでサポートされている Locale
のセット NullPointerExceptionSE
- 引数 newLocales
が null
の場合。public void addELContextListener(ELContextListener listener)
Faces アプリケーションが ELContext
インスタンスの作成時に通知される ELContextListener
を登録する方法を提供します。このリスナーは、リクエストごとに 1 回呼び出されます。
Application
を装飾するユーザーが引き続き作業できるように、UnsupportedOperationException
をスローする実装が提供されます。
listener
- 追加する Jakarta Expression Language コンテキストリスナー。public void removeELContextListener(ELContextListener listener)
ELContextListener
のリストから引数 listener
を削除します。listener
が null の場合、例外はスローされず、アクションは実行されません。listener
がリストにない場合、例外はスローされず、アクションは実行されません。
Application
を装飾するユーザーが引き続き作業できるように、UnsupportedOperationException
をスローする実装が提供されます。
listener
- 削除する Jakarta Expression Language コンテキストリスナー。public ELContextListener[] getELContextListeners()
addELContextListener(javax.el.ELContextListener)
が呼び出されていない場合、このメソッドは空の配列を返す必要があります。
それ以外の場合は、addELContextListener(javax.el.ELContextListener)
の呼び出しによって追加されたリスナーのリストを表す配列を返します。
Application
を装飾するユーザーが引き続き作業できるように、UnsupportedOperationException
をスローする実装が提供されます。
public abstract void addValidator(StringSE validatorId, StringSE validatorClass)
対応する Validator
クラスの名前へのバリデータ ID の新しいマッピングを登録します。これにより、createValidator()
への後続の呼び出しが Validator
インスタンスのファクトリとして機能できるようになります。
validatorId
- 登録するバリデータ IDvalidatorClass
- 対応する Validator
実装の完全修飾クラス名 NullPointerExceptionSE
- validatorId
または validatorClass
が null
の場合 public abstract Validator createValidator(StringSE validatorId) throws FacesException
インスタンス化とは、指定されたバリデータ ID の addValidator()
の前回の呼び出しで指定したクラスの新しい Validator
インスタンスを返します。
引数 validator
は、ResourceDependency
アノテーションの存在をインスペクションする必要があります。ResourceDependency
アノテーションが存在する場合は、ResourceDependency
で説明されているアクションを実行する必要があります。ResourceDependency
アノテーションが存在しない場合は、引数 validator
をインスペクションして ResourceDependencies
アノテーションが存在するかどうかを確認する必要があります。ResourceDependencies
アノテーションが存在する場合は、ResourceDependencies
で説明されているアクションを実行する必要があります。
validatorId
- 新しい Validator
インスタンスを作成して返すためのバリデータ IDFacesException
- 指定した ID の Validator
を作成できない場合 NullPointerExceptionSE
- validatorId
が null
の場合 public abstract IteratorSE<StringSE> getValidatorIds()
この Application
の現在登録されているバリデーター ID のセットに対して Iterator
を返します。
public abstract ValueBinding createValueBinding(StringSE ref) throws ReferenceSyntaxException
getExpressionFactory()
を呼び出して ExpressionFactory.createValueExpression(javax.el.ELContext, java.lang.String, java.lang.Class<?>)
を呼び出すことによって置き換えられました。getExpressionFactory()
を呼び出し、次に ExpressionFactory.createValueExpression(javax.el.ELContext, java.lang.String, java.lang.Class<?>)
を呼び出し、引数 ref
、expectedType の場合は Object.class
、fnMapper の場合は null
を渡します。
ref
- ValueBinding
インスタンスを返す値バインディング式 NullPointerExceptionSE
- ref
が null
の場合 ReferenceSyntaxException
- 指定された ref
の構文が無効な場合 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 javax.faces.event.SystemEvent>, java.lang.Class<?>, javax.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
を提供できます。
デフォルトの実装では、リスナーインスタンスを見つけて呼び出すために、以下と意味的に同等のアルゴリズムを実装する必要があります。
source
引数が SystemEventListenerHolder
を実装している場合は、systemEventClass
引数を渡して SystemEventListenerHolder.getListenersForEventClass(java.lang.Class<? extends javax.faces.event.SystemEvent>)
を呼び出します。リストが空でない場合は、リストに対してアルゴリズム traverseListenerList を実行します。
UIViewRoot
上の subscribeToEvent(Class, Class, javax.faces.event.SystemEventListener)
への以前の呼び出しによってビューレベルリスナーがインストールされている場合は、UIViewRoot
にインストールされたそのイベントのリスナーのリストに対してアルゴリズム traverseListenerList を実行します。
subscribeToEvent(Class, Class, javax.faces.event.SystemEventListener)
への以前の呼び出しによって Application
レベルのリスナーがインストールされている場合は、リストに対してアルゴリズム traverseListenerList を実行します。
subscribeToEvent(Class, javax.faces.event.SystemEventListener)
への以前の呼び出しによって Application
レベルのリスナーがインストールされている場合は、リストに対してアルゴリズム traverseListenerList を実行します。
processListener
メソッドを呼び出す行為によって AbortProcessingException
がスローされた場合、リスナーの処理を中止し、このイベントのリスナーのそれ以上の処理を行わず、例外を Level.SEVERE
でログに記録する必要があります。
アルゴリズム traverseListenerList: リスト内のリスナーごとに
source
引数を渡して、SystemEventListener.isListenerForSource(java.lang.Object)
を呼び出します。これが false
を返す場合は、リスナーに対して何も実行しないでください。
それ以外の場合、リスナーインスタンスに渡されるイベントがまだ構築されていない場合は、Object
を受け取る 1 引数コンストラクターに引数として source
を渡して、イベントを構築します。この同じイベントインスタンスをすべてのリスナーインスタンスに渡す必要があります。
SystemEvent.isAppropriateListener(javax.faces.event.FacesListener)
を呼び出し、リスナーインスタンスを引数として渡します。これが false
を返す場合は、リスナーに対して何も実行しないでください。
SystemEvent.processListener(javax.faces.event.FacesListener)
を呼び出し、リスナーインスタンスを渡します。
Application
を装飾するユーザーが機能を継続できるように、UnsupportedOperationException
をスローするデフォルトの実装が提供されています
context
- 現在のリクエストの FacesContext
systemEventClass
- 公開されているイベントの Class
。source
- 型 systemEventClass
のイベントのソース。NullPointerExceptionSE
- context
、systemEventClass
、source
のいずれかが null
の場合 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
の場合 public void subscribeToEvent(ClassSE<? extends SystemEvent> systemEventClass, ClassSE<?> sourceClass, SystemEventListener listener)
引数 listener
で参照されるリスナーインスタンスを、型 sourceClass
のオブジェクトから発生する型 systemEventClass
のイベントのリスナーとしてアプリケーションにインストールします。
引数 sourceClass
が非 null
、sourceClass
、systemEventClass
の場合は、systemEventClass
および sourceClass
によって参照される Class
のインスタンスを指定して publishEvent(javax.faces.context.FacesContext, java.lang.Class<? extends javax.faces.event.SystemEvent>, java.lang.Object)
を実装することにより、listener
をすばやく検索できるように、引数 listener
をアプリケーションに格納するために null
、sourceClass
、systemEventClass
を使用する必要があります。引数 sourceClass
が null
の場合、systemEventClass
のみが指定された publishEvent(javax.faces.context.FacesContext, java.lang.Class<? extends javax.faces.event.SystemEvent>, java.lang.Object)
の実装によって、listener
が検出可能である必要があります。
このメソッドへの以前の呼び出しによってサブスクライブされたイベントの処理中に、このメソッドを呼び出すことは有効です。
systemEventClass
- listener
を発生させる必要があるイベントの Class
sourceClass
- 型 systemEventClass
のイベントを発生させるインスタンスの Class
。null
の可能性があります。listener
- 型 systemEventClass
のイベントが発生したときに SystemEventListener.processEvent(javax.faces.event.SystemEvent)
メソッドを呼び出す必要がある SystemEventListener
の実装。NullPointerExceptionSE
- systemEventClass
または listener
の任意の組み合わせが null
である場合。public void subscribeToEvent(ClassSE<? extends SystemEvent> systemEventClass, SystemEventListener listener)
引数 listener
によって参照されるリスナーインスタンスを、型 systemEventClass
のイベントのリスナーとしてアプリケーションにインストールします。デフォルトの実装は、sourceClass
引数として null
を渡す subscribeToEvent(Class, Class, javax.faces.event.SystemEventListener)
を呼び出すだけです。
Application
を装飾するユーザーが機能を継続できるように、UnsupportedOperationException
をスローするデフォルトの実装が提供されています
systemEventClass
- listener
を発生させる必要があるイベントの Class
listener
- 型 systemEventClass
のイベントが発生したときに SystemEventListener.processEvent(javax.faces.event.SystemEvent)
メソッドを呼び出す必要がある SystemEventListener
の実装。 このメソッドを呼び出すことが有効な場合に関する追加要件については、subscribeToEvent(java.lang.Class,java.lang.Class,javax.faces.event.SystemEventListener)
を参照してください。
NullPointerExceptionSE
- systemEventClass
または listener
の任意の組み合わせが null
である場合。public void unsubscribeFromEvent(ClassSE<? extends SystemEvent> systemEventClass, ClassSE<?> sourceClass, SystemEventListener listener)
型 sourceClass
のオブジェクトから発生する型 systemEventClass
のイベントのリスナーとして、引数 listener
によって参照されるリスナーインスタンスをアプリケーションから削除します。リスナーの保管方法、リスナーを削除する方法の仕様については、subscribeToEvent(Class, Class, javax.faces.event.SystemEventListener)
を参照してください。
このメソッドを呼び出すことが有効な場合に関する追加要件については、subscribeToEvent(java.lang.Class,java.lang.Class,javax.faces.event.SystemEventListener)
を参照してください。
systemEventClass
- listener
を発生させる必要があるイベントの Class
sourceClass
- 型 systemEventClass
のイベントを発生させるインスタンスの Class
。null
の可能性があります。listener
- 内部データ構造から削除する SystemEventListener
の実装。NullPointerExceptionSE
- context
、systemEventClass
、listener
の任意の組み合わせが null
である場合。public void unsubscribeFromEvent(ClassSE<? extends SystemEvent> systemEventClass, SystemEventListener listener)
型 systemEventClass
のイベントのリスナーとして、引数 listener
によって参照されるリスナーインスタンスをアプリケーションから削除します。デフォルトの実装は、sourceClass
引数として null
を渡す unsubscribeFromEvent(Class, javax.faces.event.SystemEventListener)
を呼び出すだけです。
このメソッドを呼び出すことが有効な場合に関する追加要件については、subscribeToEvent(java.lang.Class,java.lang.Class,javax.faces.event.SystemEventListener)
を参照してください。
systemEventClass
- listener
を発生させる必要があるイベントの Class
listener
- 内部データ構造から削除する SystemEventListener
の実装。NullPointerExceptionSE
- context
、systemEventClass
、listener
の任意の組み合わせが null
である場合。public SearchExpressionHandler getSearchExpressionHandler()
このアプリケーションのスレッドセーフシングルトン SearchExpressionHandler
を返します。
SearchExpressionHandler
public void setSearchExpressionHandler(SearchExpressionHandler searchExpressionHandler)
アプリケーションが使用する SearchExpressionHandler
インスタンスを設定します。
searchExpressionHandler
- SearchExpressionHandler
NullPointerExceptionSE
- searchExpressionHandler が null
の場合 IllegalStateExceptionSE
- このアプリケーションの Lifecycle
インスタンスによって少なくとも 1 つのリクエストが処理された後にこのメソッドが呼び出された場合。public void addSearchKeywordResolver(SearchKeywordResolver resolver)
引数 resolver
をリゾルバーチェーンの先頭に追加します。
この方法で登録された SearchKeywordResolver
は、一度登録すると削除できません。
デフォルトの実装は UnsupportedOperationException
をスローし、Application
を継承する既存のアプリケーションを壊さないという唯一の目的のために提供されています。
resolver
- 追加する SearchKeywordResolver。IllegalStateExceptionSE
- FacesServlet
への最初のリクエストが処理された後に呼び出された場合。NullPointerExceptionSE
- リゾルバーが null の場合。public SearchKeywordResolver getSearchKeywordResolver()
すべての検索キーワード解決に使用されるシングルトン SearchKeywordResolver
インスタンスを返します。これは実際には複合 SearchKeywordResolver のインスタンスであり、次の SearchKeywordResolver
インスタンスを次の順序で含める必要があります。
アプリケーション構成リソースの <search-keyword-resolver> 要素を使用して宣言された SearchKeywordResolver
インスタンス。
addSearchKeywordResolver(javax.faces.component.search.SearchKeywordResolver)
の呼び出しによって追加された SearchKeywordResolver
インスタンス。
@all
、@child(n)
、@form
、@id(...)
、@namingcontainer
、@next
、@none
、@parent
、@previous
、@root
、@this
の SearchKeywordResolver
実装。
デフォルトの実装は UnsupportedOperationException
をスローし、Application
を継承する既存のアプリケーションを壊さないという唯一の目的のために提供されています。
SearchKeywordResolver
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.