update(REQ-2516) - 测试 Javaparser 生成代码
This commit is contained in:
parent
d491169c78
commit
15323a6752
@ -1,15 +1,25 @@
|
||||
package cn.axzo.workflow.support.api;
|
||||
|
||||
import cn.axzo.workflow.client.config.WorkflowEngineClientAutoConfiguration;
|
||||
import cn.axzo.workflow.common.annotation.InvokeMode;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceCreateDTO;
|
||||
import cn.axzo.workflow.starter.WorkflowEngineStarterAutoConfiguration;
|
||||
import com.github.javaparser.ParseResult;
|
||||
import com.github.javaparser.ParserConfiguration;
|
||||
import com.github.javaparser.ast.CompilationUnit;
|
||||
import com.github.javaparser.ast.Modifier;
|
||||
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
|
||||
import com.github.javaparser.ast.body.MethodDeclaration;
|
||||
import com.github.javaparser.ast.body.Parameter;
|
||||
import com.github.javaparser.ast.expr.NormalAnnotationExpr;
|
||||
import com.github.javaparser.printer.DefaultPrettyPrinter;
|
||||
import com.github.javaparser.printer.Printer;
|
||||
import com.github.javaparser.utils.CodeGenerationUtils;
|
||||
import com.github.javaparser.utils.SourceRoot;
|
||||
import lombok.SneakyThrows;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Path;
|
||||
@ -35,12 +45,34 @@ public class CodeGeneration {
|
||||
List<ParseResult<CompilationUnit>> parseResults = sourceRoot.tryToParse();
|
||||
List<CompilationUnit> compilationUnits = sourceRoot.getCompilationUnits();
|
||||
compilationUnits.forEach(compilationUnit -> {
|
||||
System.out.println("compilationUnit = " + compilationUnit);
|
||||
// System.out.println("compilationUnit = " + compilationUnit);
|
||||
});
|
||||
|
||||
// https://www.jianshu.com/p/04b413c97988
|
||||
Path outputCodeRoot = CodeGenerationUtils.mavenModuleRoot(WorkflowEngineStarterAutoConfiguration.class).resolve(Paths.get("src/main/java/cn/axzo/workflow/starter/api"));
|
||||
SourceRoot outputCodeSR = new SourceRoot(outputCodeRoot);
|
||||
outputCodeSR.saveAll(StandardCharsets.UTF_8);
|
||||
|
||||
CompilationUnit compilationUnit = new CompilationUnit();
|
||||
ClassOrInterfaceDeclaration workflowCoreServiceTest = compilationUnit.addInterface("WorkflowCoreServiceTest").setPublic(true);
|
||||
workflowCoreServiceTest.setInterface(true);
|
||||
MethodDeclaration a = workflowCoreServiceTest.addMethod("a", Modifier.Keyword.PUBLIC).removeBody();
|
||||
a.setJavadocComment("创建审批流程");
|
||||
Parameter dto = a.addAndGetParameter(BpmnProcessInstanceCreateDTO.class, "dto");
|
||||
dto.addAnnotation(Validated.class).addAnnotation(RequestBody.class);
|
||||
a.setType(String.class);
|
||||
|
||||
NormalAnnotationExpr postMapping = a.addAndGetAnnotation(PostMapping.class);
|
||||
postMapping.addPair("value", "/api/process/instance/create");
|
||||
// postMapping.setName("/api/process/instance/create");
|
||||
|
||||
NormalAnnotationExpr invokeMode = a.addAndGetAnnotation(InvokeMode.class);
|
||||
invokeMode.addPair("value", "SYNC");
|
||||
|
||||
// compilationUnit.setPackageDeclaration("cn.axzo.workflow.starter.api");
|
||||
compilationUnit.addImport(BpmnProcessInstanceCreateDTO.class);
|
||||
|
||||
String string = workflowCoreServiceTest.toString();
|
||||
System.out.println("string = " + string);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user