クラス 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_FILES
ServletContext
初期化パラメーターで指定された 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 ObjectSE
getFactory(StringSE factoryName)
クラスの説明で説明されている検出アルゴリズムに基づいて、指定された Jakarta Faces ファクトリクラスの適切な実装クラスの Web アプリケーションごとのインスタンスを(必要に応じて)作成して返します。static void
releaseFactories()
呼び出し元の Web アプリケーションのクラスローダーに関連付けられているファクトリインスタンスへの参照をすべて解放します。static void
setFactory(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 アプリケーションクラスローダーを識別できない場合