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

com.yomahub.liteflow.lifecycle.LifeCycleHolder Maven / Gradle / Ivy

The newest version!
package com.yomahub.liteflow.lifecycle;

import java.util.ArrayList;
import java.util.List;

/**
 * 生命周期接口持有器
 * 经过启动后把相应的生命周期接口实现类扫入这个持有器中
 *
 * @author Bryan.Zhang
 * @since 2.12.4
 */
public class LifeCycleHolder {

    private static final List POST_PROCESS_SCRIPT_ENGINE_INIT_LIFE_CYCLE_LIST = new ArrayList<>();

    private static final List POST_PROCESS_CHAIN_BUILD_LIFE_CYCLE_LIST = new ArrayList<>();

    private static final List POST_PROCESS_NODE_BUILD_LIFE_CYCLE_LIST = new ArrayList<>();

    private static final List POST_PROCESS_FLOW_EXECUTE_LIFE_CYCLE_LIST = new ArrayList<>();

    private static final List POST_PROCESS_CHAIN_EXECUTE_LIFE_CYCLE_LIST = new ArrayList<>();


    public static void addLifeCycle(LifeCycle lifeCycle){
        if (PostProcessScriptEngineInitLifeCycle.class.isAssignableFrom(lifeCycle.getClass())){
            POST_PROCESS_SCRIPT_ENGINE_INIT_LIFE_CYCLE_LIST.add((PostProcessScriptEngineInitLifeCycle)lifeCycle);
        }else if(PostProcessChainBuildLifeCycle.class.isAssignableFrom(lifeCycle.getClass())){
            POST_PROCESS_CHAIN_BUILD_LIFE_CYCLE_LIST.add((PostProcessChainBuildLifeCycle)lifeCycle);
        }else if(PostProcessNodeBuildLifeCycle.class.isAssignableFrom(lifeCycle.getClass())){
            POST_PROCESS_NODE_BUILD_LIFE_CYCLE_LIST.add((PostProcessNodeBuildLifeCycle)lifeCycle);
        }else if(PostProcessFlowExecuteLifeCycle.class.isAssignableFrom(lifeCycle.getClass())){
            POST_PROCESS_FLOW_EXECUTE_LIFE_CYCLE_LIST.add((PostProcessFlowExecuteLifeCycle)lifeCycle);
        }else if(PostProcessChainExecuteLifeCycle.class.isAssignableFrom(lifeCycle.getClass())){
            POST_PROCESS_CHAIN_EXECUTE_LIFE_CYCLE_LIST.add((PostProcessChainExecuteLifeCycle)lifeCycle);
        }
    }

    public static List getPostProcessScriptEngineInitLifeCycleList() {
        return POST_PROCESS_SCRIPT_ENGINE_INIT_LIFE_CYCLE_LIST;
    }

    public static List getPostProcessChainBuildLifeCycleList() {
        return POST_PROCESS_CHAIN_BUILD_LIFE_CYCLE_LIST;
    }

    public static List getPostProcessNodeBuildLifeCycleList() {
        return POST_PROCESS_NODE_BUILD_LIFE_CYCLE_LIST;
    }

    public static List getPostProcessFlowExecuteLifeCycleList() {
        return POST_PROCESS_FLOW_EXECUTE_LIFE_CYCLE_LIST;
    }

    public static List getPostProcessChainExecuteLifeCycleList() {
        return POST_PROCESS_CHAIN_EXECUTE_LIFE_CYCLE_LIST;
    }

    public static void clean(){
        POST_PROCESS_SCRIPT_ENGINE_INIT_LIFE_CYCLE_LIST.clear();
        POST_PROCESS_CHAIN_BUILD_LIFE_CYCLE_LIST.clear();
        POST_PROCESS_NODE_BUILD_LIFE_CYCLE_LIST.clear();
        POST_PROCESS_FLOW_EXECUTE_LIFE_CYCLE_LIST.clear();
        POST_PROCESS_CHAIN_EXECUTE_LIFE_CYCLE_LIST.clear();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy