All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nablarch.fw.invoker.BasicHandlerListInvoker Maven / Gradle / Ivy

There is a newer version: 2.0.0
Show newest version
package nablarch.fw.invoker;

import java.util.List;

import nablarch.core.util.annotation.Published;
import nablarch.fw.ExecutionContext;
import nablarch.fw.Handler;

/**
 * {@link HandlerListInvoker}の基本実装クラス。
 * 設定された{@link HandlerListBuilder}を使用してハンドラリストを組み立てて、
 * そのハンドラリストを起動する。
 *
 * @param     処理対象データ型
 * @param   処理結果データ型
 *
 * @author T.Kawasaki
 */
@Published(tag = "architect")
public class BasicHandlerListInvoker implements HandlerListInvoker {

    /** 実行対象となるハンドラリストを組み立てる{@link HandlerListBuilder} */
    private HandlerListBuilder handlerListBuilder;

    @Override
    public TResult invokeHandlerList(TData input, ExecutionContext context) {
        context.setHandlerQueue(getHandlerList(input));
        return context.handleNext(input);
    }

    /**
     * 実行対象となるハンドラリストを取得する。
     *
     * @param input 入力データ
     * @return ハンドラリスト
     */
    protected List> getHandlerList(TData input) {
        if (handlerListBuilder == null) {
            throw new IllegalStateException("handlerListBuilder must be set.");
        }
        return handlerListBuilder.getHandlerList(input);
    }

    /**
     * {@link HandlerListBuilder}を設定する。
     *
     * @param handlerListBuilder {@link HandlerListBuilder}
     */
    public void setHandlerListBuilder(HandlerListBuilder handlerListBuilder) {
        this.handlerListBuilder = handlerListBuilder;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy