📄 bizatomstatement.java
字号:
package com.exp.bizatom.auto.statement;
import java.util.HashMap;
import java.util.Map;
import com.exp.bizatom.auto.BizAutoAtomLogic;
import com.exp.fcl.interfaces.Prototype;
import com.exp.fcl.xml.EXPXMLNode;
/**
* 业务处理语句基类
* <p>
* Title: jstrd 基础技术平台
* </p>
* <p>
* Description: jstrd 基础技术平台
* </p>
* <p>
* Copyright: Copyright (c) jstrd 2004-2008
* </p>
* <p>
* Company: jstrd
* </p>
*
* @author zhanghf
* @version 3.0.0.0
*/
public abstract class BizAtomStatement implements Prototype {
protected String override = "";
/**
* 得到重定义的行号
*
* @return
*/
public String override() {
return this.override;
}
/**
* 解析配置信息
*
* @param node
*/
void parseConfig(EXPXMLNode node) {
this.override = node.getAttributeValue("override");
this.parse(node);
}
/**
* 解析配置信息
*
* @param node
*/
protected abstract void parse(EXPXMLNode node);
/**
* 执行语句
*
* @param function
* 当前业务逻辑
* @param row
* 当前行号
* @return 下一行
* @throws java.lang.Throwable
*/
public abstract int execute(BizAutoAtomLogic function, int row)
throws Throwable;
private static final Map cmds = new HashMap();
static {
registerStatement("set-property", SetVOBizAtomStatement.class);
registerStatement("set-property-list", SetListBizAtomStatement.class);
registerStatement("return", ReturnBizAtomStatement.class);
registerStatement("set-return", SetReturnBizAtomStatement.class);
registerStatement("block", BlockBizAtomStatement.class);
registerStatement("condition", ConditionBizAtomStatement.class);
registerStatement("condition-rule", ConditionExBizAtomStatement.class);
registerStatement("set-var", SetVariableBizAtomStatement.class);
registerStatement("command", CommandBizAtomStatement.class);
registerStatement("empty", EmptyBizAtomStatement.class);
registerStatement("set-rollback", SetRollbackBizAtomStatement.class);
registerStatement("print", PrintBizAtomStatement.class);
registerStatement("call", CallBizAtomStatement.class);
}
/**
* 注册语句
*
* @param cmd
* 命令名称
* @param cls
* 实现类
*/
public static void registerStatement(String cmd, Class cls) {
cmds.put(cmd.toLowerCase(), cls);
}
/**
* 得到指定语句
*
* @param cmd
* 命令名称
* @return
*/
public static BizAtomStatement getRegStatement(String cmd) {
Class cls = (Class) cmds.get(cmd.toLowerCase());
if (cls != null) {
try {
return (BizAtomStatement) cls.newInstance();
} catch (Exception e) {
}
return null;
} else {
return new EmptyBizAtomStatement("DUAL");
}
}
/**
* 根据配置节点创建语句
*
* @param node
* @return
*/
public static BizAtomStatement buildStatement(EXPXMLNode node) {
String cmdName = node.getNodeName();
BizAtomStatement statement = getRegStatement(cmdName);
if (statement != null) {
statement.parseConfig(node);
return statement;
}
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -