cloud-rule/cloud-rule-engine/src/main/java/com/muyu/constant/GenerateConstant.java

76 lines
2.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.muyu.constant;
import com.muyu.common.domain.RuleData;
import com.muyu.common.domain.RuleVersion;
import com.muyu.common.security.utils.SecurityUtils;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Author蓬叁
* @Packagecom.muyu.constant
* @Projectcloud-rule
* @nameGenerateConstant
* @Date2024/8/30 上午12:49
* @Description: 规则引擎版本生成
*/
@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(RuleData ruleData, RuleVersion ruleVersion){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String format = simpleDateFormat.format(new Date());
String level = selectType(ruleData.getRuleRegion());
return PACKAGE_PATH + "\n" +
ACTION_IMPORT + "\n" +
SCOPE_IMPORT+level+";\n" +
"\n" +
"/**\n" +
" * @Author: "+ SecurityUtils.getUsername() +"\n" +
" * @date: "+format+"\n" +
" * @Description: "+ruleVersion.getRuleVersionName()+"_"+ruleVersion.getRuleVersionCode()+"\n" +
" * @Version: 1.0\n" +
" */\n" +
"public class "+getClassName(ruleVersion.getRuleVersionType()) + " 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;
}
}