nablarch.fw.handler
クラス MethodBinding<TData,TResult>

java.lang.Object
  上位を拡張 nablarch.fw.handler.MethodBinding<TData,TResult>
型パラメータ:
TData - 入力データの型
TResult - 結果データの型
すべての実装されたインタフェース:
nablarch.fw.Handler<TData,TResult>, nablarch.fw.HandlerWrapper<TData,TResult>

public abstract class MethodBinding<TData,TResult>
extends java.lang.Object
implements nablarch.fw.HandlerWrapper<TData,TResult>

メソッドレベルのディスパッチ機能を実装する際に継承する抽象基底クラス。


コンストラクタの概要
MethodBinding(java.lang.Object delegate)
          コンストラクタ。
 
メソッドの概要
 java.util.List<java.lang.Object> getDelegates(TData data, nablarch.fw.ExecutionContext context)
          
protected  java.lang.reflect.Method getHandleMethod(java.lang.String name)
          委譲対象オブジェクトのメソッドの中から、与えられたメソッド名をもち、 かつ、Handler.handle() メソッドと互換なシグニチャを持てばtrueを返す。
protected abstract  java.lang.reflect.Method getMethodBoundTo(TData data, nablarch.fw.ExecutionContext ctx)
          入力データおよび実行コンテキストの内容に応じて、委譲対象のメソッドを決定する。
 TResult handle(TData req, nablarch.fw.ExecutionContext ctx)
          getMethodBoundTo() で取得したメソッドに対して後続処理を委譲し、 その結果を返す。
protected  boolean qualifiesAsHandler(java.lang.reflect.Method method)
          与えられたメソッドがhandle()メソッドと互換なシグニチャを持てばtrueを返す。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

MethodBinding

public MethodBinding(java.lang.Object delegate)
コンストラクタ。

パラメータ:
delegate - 委譲対象となるオブジェクト
メソッドの詳細

getMethodBoundTo

protected abstract java.lang.reflect.Method getMethodBoundTo(TData data,
                                                             nablarch.fw.ExecutionContext ctx)
入力データおよび実行コンテキストの内容に応じて、委譲対象のメソッドを決定する。

パラメータ:
data - 入力データ
ctx - 実行コンテキスト
戻り値:
委譲対象メソッド

getHandleMethod

protected java.lang.reflect.Method getHandleMethod(java.lang.String name)
委譲対象オブジェクトのメソッドの中から、与えられたメソッド名をもち、 かつ、Handler.handle() メソッドと互換なシグニチャを持てばtrueを返す。 すなわち、以下の条件を満たすメソッドを返す。
   1. 引数で渡された文字列と同じメソッド名をもつ。(大文字小文字は同一視)
   2. メソッドの修飾子がパブリックかつ非スタティックである。
   3. 引数を2つもち、第2引数の型がExecutionContextである。
 
なお、該当するメソッドが存在しなかった場合はnullを返す。

パラメータ:
name - 委譲対象となるメソッド名
戻り値:
委譲対象となるメソッド (該当するメソッドが存在しなかった場合はnull)

handle

public TResult handle(TData req,
                      nablarch.fw.ExecutionContext ctx)
               throws nablarch.fw.Result.NotFound
getMethodBoundTo() で取得したメソッドに対して後続処理を委譲し、 その結果を返す。

定義:
インタフェース nablarch.fw.Handler<TData,TResult> 内の handle
パラメータ:
req - 入力オブジェクト
ctx - 実行コンテキスト
戻り値:
処理結果オブジェクト
例外:
nablarch.fw.Result.NotFound - 入力データに対応するメソッドが存在しない場合。

getDelegates

public java.util.List<java.lang.Object> getDelegates(TData data,
                                                     nablarch.fw.ExecutionContext context)

定義:
インタフェース nablarch.fw.HandlerWrapper<TData,TResult> 内の getDelegates

qualifiesAsHandler

protected boolean qualifiesAsHandler(java.lang.reflect.Method method)
与えられたメソッドがhandle()メソッドと互換なシグニチャを持てばtrueを返す。

パラメータ:
method - 検証対象のメソッド
戻り値:
与えられたメソッドのシグニチャがhandle()と互換ならtrue。