クラス FactoryFinder
- java.lang.ObjectSE
-
- jakarta.faces.FactoryFinder
public final class FactoryFinder extends ObjectSE
FactoryFinder は、Jakarta Faces API で指定されたすべてのファクトリオブジェクトの標準検出アルゴリズムを実装します。指定されたファクトリクラス名について、対応する実装クラスが次のアルゴリズムに基づいて検索されます。アイテムは、検索の優先順位の高い順にリストされています。
webapp の
WEB-INFディレクトリにバンドルされている Jakarta Faces 構成ファイルに、指定されたファクトリクラス名のfactoryエントリが含まれている場合、そのファクトリが使用されます。jakarta.faces.CONFIG_FILESServletContext初期化パラメーターで指定された Jakarta Faces 構成ファイルに、指定されたファクトリクラス名のfactoryエントリが含まれている場合、それらの injectionProvider が使用され、最後のエントリが優先されます。ServletContextのリソースパス上の jar のMETA-INFディレクトリにバンドルされている Jakarta Faces 構成ファイルがある場合、それらのファイル内の指定されたファクトリクラス名のfactoryエントリが使用され、最後のエントリが優先されます。META-INF/services/{factory-class-name}リソースが呼び出し元アプリケーションの Web アプリケーションクラスローダーに表示されている場合 (通常は、JAR ファイルのマニフェストに存在する injectionProvider として)、その最初の行が読み取られ、使用するファクトリ実装クラスの名前であると見なされます。上記の手順のいずれも一致しない場合、Jakarta Faces 実装固有のクラスが使用されます。
上記のいずれかの手順で見つかった injectionProvider のいずれかに、引数の型が抽象ファクトリクラスである 1 つの引数コンストラクターがある場合、そのコンストラクターが呼び出され、前の一致がコンストラクターに渡されます。例: コンテナーベンダーが
FacesContextFactoryの実装を提供し、Web アプリケーション ClassLoader の jar のMETA-INF/services/jakarta.faces.context.FacesContextFactoryでそれを識別したとします。また、コンテナーベンダーによって提供されたこの実装には、FacesContextFactoryインスタンスを受け取る 1 つの引数コンストラクターがあったとします。FactoryFinderシステムは、その 1 つの引数コンストラクターを呼び出し、Jakarta Faces 実装によって提供されたFacesContextFactoryの実装を渡します。Factory 実装が適切な 1 つの引数のコンストラクターを提供しない場合、正常にインスタンス化するには、引数のないコンストラクターを提供する必要があります。
ファクトリ実装クラスの名前が見つかると、呼び出し元アプリケーションの Web アプリケーションクラスローダーがこのクラスをロードするようにリクエストされ、クラスの対応するインスタンスが作成されます。このルールの副作用は、Jakarta Server Faces 実装が Web アプリケーションに含まれているか、共有ライブラリのコンテナーの機能を通じて表示されるかに関係なく、各 Web アプリケーションが各ファクトリクラスの独自のインスタンスを受け取ることです。
フィールドのサマリー
方法の概要
すべてのメソッド 静的メソッド 具象メソッド 修飾子と型 メソッド 説明 static ObjectSEgetFactory(StringSE factoryName)クラスの説明で説明されている検出アルゴリズムに基づいて、指定された Jakarta Faces ファクトリクラスの適切な実装クラスの Web アプリケーションごとのインスタンスを(必要に応じて)作成して返します。static voidreleaseFactories()呼び出し元の Web アプリケーションのクラスローダーに関連付けられているファクトリインスタンスへの参照をすべて解放します。static voidsetFactory(StringSE factoryName, StringSE implName)このメソッドは、一致を検索するときにgetFactory(java.lang.String)がこのマッピングを見つけるように、引数factoryName/implNameマッピングを格納します。
フィールドの詳細
APPLICATION_FACTORY
public static final StringSE APPLICATION_FACTORY
ApplicationFactoryクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
CLIENT_WINDOW_FACTORY
public static final StringSE CLIENT_WINDOW_FACTORY
ClientWindowFactoryクラス名のプロパティ名。- 導入:
- 2.2
- 関連事項:
- 定数フィールド値
EXCEPTION_HANDLER_FACTORY
public static final StringSE EXCEPTION_HANDLER_FACTORY
ExceptionHandlerFactoryクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
EXTERNAL_CONTEXT_FACTORY
public static final StringSE EXTERNAL_CONTEXT_FACTORY
ExternalContextFactoryクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
FACES_CONTEXT_FACTORY
public static final StringSE FACES_CONTEXT_FACTORY
FacesContextFactoryクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
FACELET_CACHE_FACTORY
public static final StringSE FACELET_CACHE_FACTORY
FaceletCacheFactoryクラス名のプロパティ名。- 導入:
- 2.1
- 関連事項:
- 定数フィールド値
FLASH_FACTORY
public static final StringSE FLASH_FACTORY
FlashFactoryクラス名のプロパティ名。- 導入:
- 2.2
- 関連事項:
- 定数フィールド値
FLOW_HANDLER_FACTORY
public static final StringSE FLOW_HANDLER_FACTORY
FlowHandlerFactoryクラス名のプロパティ名。- 導入:
- 2.2
- 関連事項:
- 定数フィールド値
PARTIAL_VIEW_CONTEXT_FACTORY
public static final StringSE PARTIAL_VIEW_CONTEXT_FACTORY
PartialViewContextFactoryクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
VISIT_CONTEXT_FACTORY
public static final StringSE VISIT_CONTEXT_FACTORY
VisitContextFactoryクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
LIFECYCLE_FACTORY
public static final StringSE LIFECYCLE_FACTORY
LifecycleFactoryクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
RENDER_KIT_FACTORY
public static final StringSE RENDER_KIT_FACTORY
RenderKitFactoryクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
VIEW_DECLARATION_LANGUAGE_FACTORY
public static final StringSE VIEW_DECLARATION_LANGUAGE_FACTORY
ViewDeclarationLanguageクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
TAG_HANDLER_DELEGATE_FACTORY
public static final StringSE TAG_HANDLER_DELEGATE_FACTORY
TagHandlerDelegateクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
SEARCH_EXPRESSION_CONTEXT_FACTORY
public static final StringSE SEARCH_EXPRESSION_CONTEXT_FACTORY
SearchExpressionContextクラス名のプロパティ名。- 関連事項:
- 定数フィールド値
メソッドの詳細
getFactory
public static ObjectSE getFactory(StringSE factoryName) throws FacesException
クラスの説明で説明されている検出アルゴリズムに基づいて、指定された Jakarta Faces ファクトリクラスの適切な実装クラスの Web アプリケーションごとのインスタンスを(必要に応じて)作成して返します。
標準の injectionProvider と Jakarta Faces のラッパーはすべて、インターフェース
FacesWrapperを実装しています。返されたObjectが標準の injectionProvider の 1 つの実装である場合、それをFacesWrapperのインスタンスにキャストし、そのインスタンスでFacesWrapper.getWrapped()を呼び出すことは有効である必要があります。- パラメーター:
factoryName- 実装インスタンスがリクエストされる Jakarta Faces ファクトリの完全修飾名- 戻り値:
- 見つかったファクトリインスタンス
- 例外:
FacesException- Web アプリケーションクラスローダーを識別できない場合FacesException- 構成されたファクトリ実装クラスのインスタンスをロードできない場合FacesException- 構成されたファクトリ実装クラスのインスタンスをインスタンス化できない場合IllegalArgumentExceptionSE-factoryNameが標準の Jakarta Faces ファクトリ名を識別しない場合IllegalStateExceptionSE- 指定されたファクトリ名に設定されたファクトリ実装クラスがない場合NullPointerExceptionSE-factorynameが null の場合
setFactory
public static void setFactory(StringSE factoryName, StringSE implName)
このメソッドは、一致を検索するときに
getFactory(java.lang.String)がこのマッピングを見つけるように、引数factoryName/implNameマッピングを格納します。この
factoryNameのファクトリを探してgetFactory()がすでに呼び出されている場合、この方法は効果がありません。このメソッドは、Faces 構成ファイルの解析中にファクトリマッピングを保存するために実装で使用できます。
- パラメーター:
factoryName- 後続のgetFactory(java.lang.String)の呼び出しで使用される名前。implName-factoryNameに対応するファクトリの完全修飾クラス名。- 例外:
IllegalArgumentExceptionSE-factoryNameが標準の Jakarta Faces ファクトリ名を識別しない場合NullPointerExceptionSE-factorynameが null の場合
releaseFactories
public static void releaseFactories() throws FacesException呼び出し元の Web アプリケーションのクラスローダーに関連付けられているファクトリインスタンスへの参照をすべて解放します。このメソッドは、Web アプリケーションのシャットダウン中に呼び出す必要があります。
- 例外:
FacesException- Web アプリケーションクラスローダーを識別できない場合