Package nablarch.fw

Class HandlerQueueManager<TSelf>

java.lang.Object
nablarch.fw.HandlerQueueManager<TSelf>
Type Parameters:
TSelf - 具象クラスの型
Direct Known Subclasses:
ExecutionContext, nablarch.fw.web.HttpServer, Main, WebFrontController

public abstract class HandlerQueueManager<TSelf> extends Object
ハンドラキューとその上の各ハンドラを管理する機能を実装した抽象クラス。
Author:
Iwauo Tajima
  • Constructor Details

    • HandlerQueueManager

      public HandlerQueueManager()
  • Method Details

    • getHandlerQueue

      public abstract List<Handler> getHandlerQueue()
      現在のハンドラキューの内容を返す。
      Returns:
      現在のハンドラキューの内容
    • setHandlerQueue

      public TSelf setHandlerQueue(Collection<? extends Handler> handlers)
      ハンドラキューの内容を入れ替える。
      Parameters:
      handlers - ハンドラキュー
      Returns:
      このオブジェクト自体
    • addHandlers

      public TSelf addHandlers(Collection<? extends Handler> handlers)
      ハンドラキューにハンドラを登録する。
      Parameters:
      handlers - 登録するハンドラ
      Returns:
      このオブジェクト自体
    • clearHandlers

      public TSelf clearHandlers()
      ハンドラーキューの内容をクリアする。
      Returns:
      このオブジェクト自体
    • addHandler

      public TSelf addHandler(Handler<?,?> handler)
      ハンドラキューにハンドラを登録する。
      Parameters:
      handler - 登録するハンドラ
      Returns:
      このインスタンス自体
    • addHandler

      public TSelf addHandler(int pos, Handler<?,?> handler)
      ハンドラキューにハンドラを登録する。
      Parameters:
      pos - ハンドラの挿入位置
      handler - 登録するハンドラ
      Returns:
      このインスタンス自体
    • addHandler

      public <TRequest extends Request<?>> TSelf addHandler(String requestPattern, Handler<TRequest,?> handler)
      ハンドラを登録する。
      Type Parameters:
      TRequest - 登録するハンドラのリクエストオブジェクトの型
      Parameters:
      requestPattern - このハンドラがキューに積まれるリクエストパス(Glob書式)
      handler - 登録するハンドラ
      Returns:
      このインスタンス自体
    • getHandlerOf

      public <T extends Handler<?, ?>> T getHandlerOf(Class<T> handlerClass)
      ハンドラキュー上の各ハンドラのうち、 指定されたクラスのものを返す。
       指定されたクラスのインスタンスが複数登録されていた場合は、
       もっとも上位ハのンドラを返す。
       該当するハンドラが登録されていなかった場合はnullを返す。
       
      Type Parameters:
      T - ハンドラのクラス
      Parameters:
      handlerClass - ハンドラのクラス
      Returns:
      ハンドラのインスタンス
    • addHandler

      public TSelf addHandler(String uriPattern, Object handler)
      リクエストハンドラを登録する。
       登録するオブジェクトは暗黙的にHttpMethodBindingでラップされる。
       すなわち、このメソッドの処理は以下のソースコードと等価である。
           addHandler(uriPattern, new HttpMethodBinder(handler));
       
      Parameters:
      uriPattern - リクエストハンドラが実行されるリクエストURIのパターン (null,空文字は不可)
      handler - リクエストハンドラ (null不可)
      Returns:
      このオブジェクト自体
      See Also:
    • addHandler

      public TSelf addHandler(Object handler)
      リクエストハンドラを登録する。
      Parameters:
      handler - リクエストハンドラ
      Returns:
      このオブジェクト自体
    • setMethodBinder

      public TSelf setMethodBinder(MethodBinder<?,?> binder)
      メソッドレベルの処理委譲を行うコンポーネントを指定する。
      Parameters:
      binder - 処理委譲を行うコンポーネント
      Returns:
      このインスタンス自体
    • getMethodBinder

      public <TData, TResult> MethodBinder<TData,TResult> getMethodBinder()
      メソッドレベルの処理委譲を行うコンポーネントを返す。
      Type Parameters:
      TData - 入力データの型
      TResult - 結果データの型
      Returns:
      処理委譲を行うコンポーネント