TData
- ハンドラに対する入力オブジェクトの型TResult
- ハンドラの処理結果オブジェクトの型TSelf
- 具象ハンドラの型public abstract class DispatchHandler<TData,TResult,TSelf extends Handler<TData,TResult>> extends java.lang.Object implements Handler<TData,TResult>
コンストラクタと説明 |
---|
DispatchHandler() |
修飾子とタイプ | メソッドと説明 |
---|---|
protected Handler<TData,TResult> |
createHandlerFor(java.lang.Object delegate,
ExecutionContext ctx)
渡されたインスタンスからハンドラインスタンスを作成して返す。
|
protected abstract java.lang.Class<?> |
getHandlerClass(TData input,
ExecutionContext context)
処理を委譲するハンドラの型を決定する。
|
TResult |
handle(TData req,
ExecutionContext ctx)
入力データに対する処理を実行する。
|
TSelf |
setImmediate(boolean immediate)
ディスパッチされたハンドラの実行タイミングを指定する。
|
protected void |
writeDispatchingClassLog(TData data,
ExecutionContext context,
java.lang.String fqn)
アクセスログにディスパッチ先クラスを出力する。
|
protected abstract java.lang.Class<?> getHandlerClass(TData input, ExecutionContext context) throws java.lang.ClassNotFoundException
input
- 入力データcontext
- 実行コンテキストjava.lang.ClassNotFoundException
- 指定されたクラスが存在しなかった場合。public TResult handle(TData req, ExecutionContext ctx)
immediate
の値に従って以下のように変化する。
immediate = true : ハンドラキューの先頭に追加。(即時に実行される。) immediate = false: ハンドラキューの末尾に追加。
protected Handler<TData,TResult> createHandlerFor(java.lang.Object delegate, ExecutionContext ctx)
delegate
- インスタンスctx
- 実行コンテキストpublic TSelf setImmediate(boolean immediate)
immediate
- trueの場合は、ディスパッチされたハンドラをハンドラキューの先端に追加する。
falseの場合は、ディスパッチされたハンドラをハンドラキューの最後尾に追加する。protected void writeDispatchingClassLog(TData data, ExecutionContext context, java.lang.String fqn)
data
- 入力データオブジェクトcontext
- 実行コンテキストfqn
- ディスパッチ先クラスの完全修飾クラス名