Package nablarch.fw

Class RequestHandlerEntry<TRequest extends Request<?>,TResult>

java.lang.Object
nablarch.fw.RequestHandlerEntry<TRequest,TResult>
Type Parameters:
TRequest - リクエストデータの型
TResult - 処理結果のデータ型
All Implemented Interfaces:
Handler<TRequest,TResult>, HandlerWrapper<TRequest,TResult>

public class RequestHandlerEntry<TRequest extends Request<?>,TResult> extends Object implements HandlerWrapper<TRequest,TResult>
各リクエストのリクエストパスの内容に応じ、内部に保持するハンドラに 処理を委譲するかどうかを判断するハンドラ。

このハンドラでは、その内部にあるハンドラに対する参照を保持し、 各リクエストに対し、そのハンドラを実行する条件をリクエストパスのパターンで指定する。

URIとリクエストパスのパターンの照合処理はRequestPathMappingHelperに委譲する。

Author:
Iwauo Tajima <iwauo@tis.co.jp>
See Also:
  • Constructor Details

    • RequestHandlerEntry

      public RequestHandlerEntry()
  • Method Details

    • handle

      public TResult handle(TRequest request, ExecutionContext context)
      入力データに対する処理を実行する。 この実装では、まずリクエストに対してこのエントリが保持する ハンドラを実行する必要があるかどうかをisAppliedTo(Request, ExecutionContext) により決定する。 必要があればこのエントリ内のハンドラを実行しその結果を返す。 必要がなければこのエントリ内のハンドラは実行せずに、 ハンドラキュー上の後続ハンドラに処理を委譲し、その結果を返す。
      Specified by:
      handle in interface Handler<TRequest extends Request<?>,TResult>
      Parameters:
      request - 入力データ
      context - 実行コンテキスト
      Returns:
      処理結果データ
    • getDelegates

      public List<Object> getDelegates(TRequest request, ExecutionContext context)
      このラッパーが処理を移譲するオブジェクトのリストを返す。 対象となるオブジェクトが存在しない場合は空の配列を返す。
      Specified by:
      getDelegates in interface HandlerWrapper<TRequest extends Request<?>,TResult>
      Parameters:
      request - ハンドラに対する入力データ
      context - 実行コンテキスト
      Returns:
      内包するオブジェクト。
    • getDelegate

      protected Handler<TRequest,TResult> getDelegate()
      処理移譲対象となるハンドラを返す。
      Returns:
      処理移譲対象のハンドラ
    • setHandler

      このハンドラエントリ内にハンドラを設定する。
      Parameters:
      handler - リクエストハンドラ
      Returns:
      このオブジェクト自体
    • setRequestPattern

      public RequestHandlerEntry<TRequest,TResult> setRequestPattern(String requestPattern)
      このエントリ内のハンドラを実行するリクエストパスの パターン文字列を設定する。
      Parameters:
      requestPattern - リクエストパターン文字列
      Returns:
      このインスタンス自体
    • isAppliedTo

      public boolean isAppliedTo(TRequest request, ExecutionContext context)
      渡されたリクエストに対して、ハンドラを実行する必要があるかどうかを判断する。 このエントリに設定されたリクエストパターンがリクエストパスにマッチする場合はtrueを返す。
      Parameters:
      request - リクエストデータ
      context - 実行コンテキスト
      Returns:
      ハンドラを実行する必要がある場合はtrue
    • toString

      public String toString()
      Overrides:
      toString in class Object