Package nablarch.fw.handler
Class MethodBinding<TData,TResult> 
java.lang.Object
nablarch.fw.handler.MethodBinding<TData,TResult> 
- Type Parameters:
- TData- 入力データの型
- TResult- 結果データの型
- All Implemented Interfaces:
- Handler<TData,,- TResult> - HandlerWrapper<TData,- TResult> 
- Direct Known Subclasses:
- HttpMethodBinding,- RecordTypeBinding
public abstract class MethodBinding<TData,TResult> 
extends Object
implements HandlerWrapper<TData,TResult> 
メソッドレベルのディスパッチ機能を実装する際に継承する抽象基底クラス。
- Author:
- Iwauo Tajima
- 
Field SummaryFields
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptiongetDelegates(TData data, ExecutionContext context) このラッパーが処理を移譲するオブジェクトのリストを返す。 対象となるオブジェクトが存在しない場合は空の配列を返す。protected MethodgetHandleMethod(String name) 委譲対象オブジェクトのメソッドの中から、与えられたメソッド名をもち、 かつ、Handler.handle() メソッドと互換なシグニチャを持てばtrueを返す。 すなわち、以下の条件を満たすメソッドを返す。protected abstract MethodgetMethodBoundTo(TData data, ExecutionContext ctx) 入力データおよび実行コンテキストの内容に応じて、委譲対象のメソッドを決定する。handle(TData req, ExecutionContext ctx) getMethodBoundTo() で取得したメソッドに対して後続処理を委譲し、 その結果を返す。protected booleanqualifiesAsHandler(Method method) 与えられたメソッドがhandle()メソッドと互換なシグニチャを持てばtrueを返す。protected voidsaveBoundClassAndMethodToRequestScope(ExecutionContext context, Class<?> clazz, Method method) ディスパッチ先のクラスとメソッドをリクエストスコープに記録する。
- 
Field Details
- 
Constructor Details- 
MethodBindingコンストラクタ。- Parameters:
- delegate- 委譲対象となるオブジェクト
 
 
- 
- 
Method Details- 
getMethodBoundTo入力データおよび実行コンテキストの内容に応じて、委譲対象のメソッドを決定する。- Parameters:
- data- 入力データ
- ctx- 実行コンテキスト
- Returns:
- 委譲対象メソッド
 
- 
getHandleMethod委譲対象オブジェクトのメソッドの中から、与えられたメソッド名をもち、 かつ、Handler.handle() メソッドと互換なシグニチャを持てばtrueを返す。 すなわち、以下の条件を満たすメソッドを返す。1. 引数で渡された文字列と同じメソッド名をもつ。(大文字小文字は同一視) 2. メソッドの修飾子がパブリックかつ非スタティックである。 3. 引数を2つもち、第2引数の型がExecutionContextである。 なお、該当するメソッドが存在しなかった場合はnullを返す。- Parameters:
- name- 委譲対象となるメソッド名
- Returns:
- 委譲対象となるメソッド (該当するメソッドが存在しなかった場合はnull)
 
- 
handlegetMethodBoundTo() で取得したメソッドに対して後続処理を委譲し、 その結果を返す。- Specified by:
- handlein interface- Handler<TData,- TResult> 
- Parameters:
- req- 入力オブジェクト
- ctx- 実行コンテキスト
- Returns:
- 処理結果オブジェクト
- Throws:
- Result.NotFound- 入力データに対応するメソッドが存在しない場合。
 
- 
saveBoundClassAndMethodToRequestScopeprotected void saveBoundClassAndMethodToRequestScope(ExecutionContext context, Class<?> clazz, Method method) ディスパッチ先のクラスとメソッドをリクエストスコープに記録する。- Parameters:
- context- コンテキスト
- clazz- 委譲先のクラス
- method- 委譲先のメソッド
 
- 
getDelegatesこのラッパーが処理を移譲するオブジェクトのリストを返す。 対象となるオブジェクトが存在しない場合は空の配列を返す。- Specified by:
- getDelegatesin interface- HandlerWrapper<TData,- TResult> 
- Parameters:
- data- ハンドラに対する入力データ
- context- 実行コンテキスト
- Returns:
- 内包するオブジェクト。
 
- 
qualifiesAsHandler与えられたメソッドがhandle()メソッドと互換なシグニチャを持てばtrueを返す。- Parameters:
- method- 検証対象のメソッド
- Returns:
- 与えられたメソッドのシグニチャがhandle()と互換ならtrue。
 
 
-