muyu-rule/muyu-rule-common/src/main/java/rule/data/engine/GenerateConstant.java

67 lines
2.3 KiB
Java

package rule.data.engine;
import org.springframework.stereotype.Component;
import rule.domain.Rule;
import rule.domain.RuleEdition;
import java.text.SimpleDateFormat;
import java.util.Date;
@Component
public class GenerateConstant {
public static final String DATA_FIELD = "DataEngineValueActuator";
public static final String DATA_RECORD = "DataEngineRecordActuator";
public static final String DATA_SET = "DataEngineSetActuator";
public static final String ACTION_IMPORT = "import com.muyu.rule.engine.action.ActionDiscard;\n";
public static final String SCOPE_IMPORT = "import com.muyu.rule.engine.scope.DataModelEngine";
public static final String PACKAGE_PATH = "package com.muyu.generate;";
public static String getClassName(String versionCode){
String[] splits = versionCode.split("_");
String className="";
for (String split : splits) {
className += split.substring(0,1).toUpperCase()+split.substring(1);
}
return className;
}
public static String generateConstant(Rule rule, RuleEdition ruleEdition){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String format = simpleDateFormat.format(new Date());
String level = selectType(rule.getRuleType());
return PACKAGE_PATH + "\n" +
ACTION_IMPORT + "\n" +
SCOPE_IMPORT+level+";\n" +
"\n" +
"/**\n" +
" * @date: "+format+"\n" +
" * @Description: "+ruleEdition.getName()+"_"+ruleEdition.getRuleKind()+"\n" +
" * @Version: 1.0\n" +
" */\n" +
"public class "+getClassName(ruleEdition.getRuleCoding()) + " extends "+level+" {\n" +
" @Override\n" +
" public void run () {\n" +
" }\n" +
"}";
}
public static String selectType(String level){
String type = "";
switch (level) {
case "F":
type = DATA_FIELD;
break;
case "R":
type = DATA_RECORD;
break;
case "C":
type = DATA_SET;
break;
}
return type;
}
}