in src/main/java/com/ql/util/express/ExpressRunner.java [518:544]
public void addOperatorWithAlias(String keyWordName, String realKeyWordName, String errorInfo) throws Exception {
if (errorInfo != null && errorInfo.trim().length() == 0) {
errorInfo = null;
}
//添加函数别名
if (this.manager.isFunction(realKeyWordName)) {
this.manager.addFunctionName(keyWordName);
this.operatorManager.addOperatorWithAlias(keyWordName, realKeyWordName, errorInfo);
return;
}
NodeType realNodeType = this.manager.findNodeType(realKeyWordName);
if (realNodeType == null) {
throw new QLException("关键字:" + realKeyWordName + "不存在");
}
boolean isExist = this.operatorManager.isExistOperator(realNodeType.getName());
if (!isExist && errorInfo != null) {
throw new QLException(
"关键字:" + realKeyWordName + "是通过指令来实现的,不能设置错误的提示信息,errorInfo 必须是 null");
}
if (!isExist || errorInfo == null) {
//不需要新增操作符号,只需要建立一个关键子即可
this.manager.addOperatorWithRealNodeType(keyWordName, realNodeType.getName());
} else {
this.manager.addOperatorWithLevelOfReference(keyWordName, realNodeType.getName());
this.operatorManager.addOperatorWithAlias(keyWordName, realNodeType.getName(), errorInfo);
}
}