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

com.yomahub.liteflow.core.ScriptComponent Maven / Gradle / Ivy

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

import com.yomahub.liteflow.enums.NodeTypeEnum;
import com.yomahub.liteflow.script.ScriptExecuteWrap;

import java.util.HashMap;
import java.util.Map;

/**
 * 脚本接口
 *
 * @author Bryan.Zhang
 * @since 2.9.0
 */
public interface ScriptComponent {

	/**
	 * 用于维护脚本类型和脚本 cmp 的映射关系
	 */
	Map> ScriptComponentClassMap = new HashMap>() {
		{
			put(NodeTypeEnum.SCRIPT, ScriptCommonComponent.class);
			put(NodeTypeEnum.SWITCH_SCRIPT, ScriptSwitchComponent.class);
			put(NodeTypeEnum.BOOLEAN_SCRIPT, ScriptBooleanComponent.class);
			put(NodeTypeEnum.FOR_SCRIPT, ScriptForComponent.class);
		}
	};

	/**
	 * 加载脚本
	 * @param script
	 */
	void loadScript(String script, String language);

	default ScriptExecuteWrap buildWrap(NodeComponent cmp){
		ScriptExecuteWrap wrap = new ScriptExecuteWrap();
		wrap.setCurrChainId(cmp.getCurrChainId());
		wrap.setNodeId(cmp.getNodeId());
		wrap.setSlotIndex(cmp.getSlotIndex());
		wrap.setTag(cmp.getTag());
		wrap.setCmpData(cmp.getCmpData(Map.class));
		wrap.setLoopIndex(cmp.getLoopIndex());
		wrap.setLoopObject(cmp.getCurrLoopObj());
		wrap.setCmp(cmp);
		return wrap;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy