Former-commit-id: 967bb0258d5baa6f27c74decd735d493e232819e
master
wangbing 5 years ago
parent 037c6ef6b6
commit bd925e0284

@ -59,6 +59,8 @@ public class OptionApiController {
@FXML @FXML
private List<Api> data = new ArrayList<>(); private List<Api> data = new ArrayList<>();
private List<String> domainList = new ArrayList<>();
public Button getSelectModulePath() { public Button getSelectModulePath() {
return selectModulePath; return selectModulePath;
} }
@ -187,6 +189,13 @@ public class OptionApiController {
this.apis = apis; this.apis = apis;
} }
public List<String> getDomainList() {
return domainList;
}
public void setDomainList(List<String> domainList) {
this.domainList = domainList;
}
public void load() { public void load() {
File moduleFile = new File(modulePath.getText()); File moduleFile = new File(modulePath.getText());
@ -201,6 +210,19 @@ public class OptionApiController {
} }
Dialog.showProgress("扫描API..."); Dialog.showProgress("扫描API...");
String absolutePath = apiPath.get(0).getAbsolutePath();
String separator = Tool.replaceSeparator(absolutePath, "#");
Pattern compile = Pattern.compile(".*src#main#java#(.*)#action#api");
Matcher matcher = compile.matcher(separator);
if (matcher.find()) {
String group = matcher.group(1);
String[] split = group.split("#");
for (String s : split) {
domainList.add(s);
}
}
for (File file : apiPath.get(0).listFiles()) { for (File file : apiPath.get(0).listFiles()) {
String module = file.getName(); String module = file.getName();
for (File tar : file.listFiles()) { for (File tar : file.listFiles()) {

@ -271,14 +271,14 @@ public class ProjectManager {
}.start(); }.start();
} }
public void generateApi(File module, File api, List<Api> apis) { public void generateApi(File module, File api, List<String> domainList, List<Api> apis) {
if (module.exists()) { if (module.exists()) {
Dialog.showProgress("生成中..."); Dialog.showProgress("生成中...");
new Thread() { new Thread() {
@Override @Override
public void run() { public void run() {
boolean mkdirs = api.mkdirs(); boolean mkdirs = api.mkdirs();
ApiCallable apiCallable = new ApiCallable(module,api, apis); ApiCallable apiCallable = new ApiCallable(module,api,domainList, apis);
Future submit = service.submit(apiCallable); Future submit = service.submit(apiCallable);
try { try {
Boolean b = (Boolean) submit.get(); Boolean b = (Boolean) submit.get();

@ -6,12 +6,15 @@ import xyz.wbsite.dbtool.javafx.manger.ProjectManager;
import xyz.wbsite.dbtool.javafx.po.AbstractDBmapper; import xyz.wbsite.dbtool.javafx.po.AbstractDBmapper;
import xyz.wbsite.dbtool.javafx.po.Api; import xyz.wbsite.dbtool.javafx.po.Api;
import xyz.wbsite.dbtool.javafx.tool.EntityReader; import xyz.wbsite.dbtool.javafx.tool.EntityReader;
import xyz.wbsite.dbtool.javafx.tool.JavaClassReader; import xyz.wbsite.dbtool.javafx.tool.RequestReader;
import xyz.wbsite.dbtool.javafx.tool.ResponseReader;
import xyz.wbsite.dbtool.javafx.tool.Tool; import xyz.wbsite.dbtool.javafx.tool.Tool;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -21,14 +24,16 @@ public class ApiCallable implements Callable {
private File module; private File module;
private File apiFile; private File apiFile;
private List<Api> apiList; private List<Api> apiList;
private List<String> domainList;
private Tool tool = new Tool(); private Tool tool = new Tool();
private FreeMarkerManager freeMarkerManager; private FreeMarkerManager freeMarkerManager;
public ApiCallable(File module, File apiFile, List<Api> apiList) { public ApiCallable(File module, File apiFile, List<String> domainList, List<Api> apiList) {
this.module = module; this.module = module;
this.apiFile = apiFile; this.apiFile = apiFile;
this.apiList = apiList; this.apiList = apiList;
this.domainList = domainList;
this.freeMarkerManager = ManagerFactory.getFreeMarkerManager(); this.freeMarkerManager = ManagerFactory.getFreeMarkerManager();
} }
@ -56,10 +61,7 @@ public class ApiCallable implements Callable {
sbtest.append("test" + File.separator); sbtest.append("test" + File.separator);
sbtest.append("java" + File.separator); sbtest.append("java" + File.separator);
JavaClassReader javaClass = new JavaClassReader(apiList.get(0).getRequestFile()); for (String s1 : domainList) {
String[] split = javaClass.getDomainName().split("\\.");
for (String s1 : split) {
sbmain.append(s1 + File.separator); sbmain.append(s1 + File.separator);
sbtest.append(s1 + File.separator); sbtest.append(s1 + File.separator);
} }
@ -80,45 +82,26 @@ public class ApiCallable implements Callable {
File entity = new File(apiModule, "ent"); File entity = new File(apiModule, "ent");
entity.mkdirs(); entity.mkdirs();
List<File> entList = new ArrayList<>();
try { try {
//region 生成request //region 生成request
JavaClassReader javaClassReader = new JavaClassReader(api.getRequestFile()); RequestReader requestReader = new RequestReader(api.getRequestFile());
for (int i = 0; i < javaClassReader.getImportList().size(); i++) { for (int i = 0; i < requestReader.getImportList().size(); i++) {
String s = javaClassReader.getImportList().get(i); String s = requestReader.getImportList().get(i);
if (s.contains(".module.entity.")) { if (s.contains(".module.entity.")) {
javaClassReader.getImportList().set(i, s); requestReader.getImportList().set(i, s);
} }
} }
{ List<String> entNames = new ArrayList<>();
HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("package", "package " + javaClassReader.getDomainName() + "." + javaClassReader.getModuleName() + "." + "request;");
ctx.put("domain", javaClassReader.getDomainName());
ctx.put("module", javaClassReader.getModuleName());
ctx.put("target", api.getTarget());
ctx.put("method", api.getMethod());
ctx.put("importList", javaClassReader.getImportList());
ctx.put("annotation", javaClassReader.getAnnotationList());
ctx.put("className", javaClassReader.getClassName().replaceAll("Request", ""));
ctx.put("body", javaClassReader.getBody());
ctx.put("tool", tool);
ctx.put("hasList", javaClassReader.isHasList());
ctx.put("findOrSearchflag", javaClassReader.getFindOrSearchflag());
File file = new File(apiRequest.getAbsolutePath(), api.getRequestFile().getName());
freeMarkerManager.outputTemp(file, "Java_api/module/req/request.java", ctx);
System.out.println("生成文件" + file.getName() + "成功");
}
//endregion
for (String s : javaClassReader.getDeptEntList()) { for (String s : requestReader.getDeptEntList()) {
Pattern compile = Pattern.compile("(.*\\.ent)\\.(.*)"); Pattern compile = Pattern.compile("(.*\\.ent)\\.(.*)");
Matcher matcher = compile.matcher(s); Matcher matcher = compile.matcher(s);
if (matcher.find()) { if (matcher.find()) {
String Package = matcher.group(1); String Package = matcher.group(1);
String EntName = matcher.group(2); String EntName = matcher.group(2);
entNames.add(EntName);
List<File> files = Tool.find(this.module, EntName + ".java"); List<File> files = Tool.find(this.module, EntName + ".java");
@ -126,7 +109,7 @@ public class ApiCallable implements Callable {
EntityReader entReader = new EntityReader(file); EntityReader entReader = new EntityReader(file);
if (Package.equals(entReader.getPackageName())) { if (Package.equals(entReader.getPackageName())) {
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("package", "package " + entReader.getDomainName() + "." + entReader.getModuleName() + "." + "request;"); ctx.put("package", "package " + entReader.getDomainName() + "." + entReader.getModuleName() + "." + "req;");
ctx.put("domain", entReader.getDomainName()); ctx.put("domain", entReader.getDomainName());
ctx.put("module", entReader.getModuleName()); ctx.put("module", entReader.getModuleName());
ctx.put("importList", entReader.getImportList()); ctx.put("importList", entReader.getImportList());
@ -134,32 +117,94 @@ public class ApiCallable implements Callable {
ctx.put("className", entReader.getClassName().replaceAll("Entity", "")); ctx.put("className", entReader.getClassName().replaceAll("Entity", ""));
ctx.put("body", entReader.getBody()); ctx.put("body", entReader.getBody());
ctx.put("tool", tool); ctx.put("tool", tool);
File EntFile = new File(entity.getAbsolutePath(), EntName); File EntFile = new File(entity.getAbsolutePath(), EntName + ".java");
freeMarkerManager.outputTemp(EntFile, "Java_api/module/ent/entity.java", ctx); freeMarkerManager.outputTemp(EntFile, "Java_api/module/ent/entity.java", ctx);
System.out.println("生成文件" + EntName + "成功"); System.out.println("生成文件" + EntName + "成功");
}
}
}
}
List<String> reqNames = new ArrayList<>();
for (String s : requestReader.getDeptReqList()) {
Pattern compile = Pattern.compile("(.*\\.req)\\.(.*)");
Matcher matcher = compile.matcher(s);
if (matcher.find()) {
String Package = matcher.group(1);
String EntName = matcher.group(2);
reqNames.add(EntName);
List<File> files = Tool.find(this.module, EntName + ".java");
for (File file : files) {
RequestReader reqReader = new RequestReader(file);
if (Package.equals(reqReader.getPackageName())) {
HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("package", "package " + requestReader.getDomainName() + "." + requestReader.getModuleName() + "." + "req;");
ctx.put("domain", requestReader.getDomainName());
ctx.put("module", requestReader.getModuleName());
ctx.put("target", api.getTarget());
ctx.put("method", api.getMethod());
ctx.put("importList", requestReader.getImportList());
ctx.put("entNames", entNames);
ctx.put("annotation", requestReader.getAnnotationList());
ctx.put("className", requestReader.getClassName().replaceAll("Request", ""));
ctx.put("body", requestReader.getBody());
ctx.put("tool", tool);
ctx.put("hasList", requestReader.isHasList());
ctx.put("findOrSearchflag", requestReader.getFindOrSearchflag());
File reqfile = new File(apiRequest.getAbsolutePath(), api.getRequestFile().getName());
freeMarkerManager.outputTemp(reqfile, "Java_api/module/req/request.java", ctx);
System.out.println("生成文件" + reqfile.getName() + "成功");
} }
} }
} }
} }
{
HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("package", "package " + requestReader.getDomainName() + "." + requestReader.getModuleName() + "." + "request;");
ctx.put("domain", requestReader.getDomainName());
ctx.put("module", requestReader.getModuleName());
ctx.put("target", api.getTarget());
ctx.put("method", api.getMethod());
ctx.put("importList", requestReader.getImportList());
ctx.put("entNames", entNames);
ctx.put("reqNames", reqNames);
ctx.put("annotation", requestReader.getAnnotationList());
ctx.put("className", requestReader.getClassName().replaceAll("Request", ""));
ctx.put("body", requestReader.getBody());
ctx.put("tool", tool);
ctx.put("hasList", requestReader.isHasList());
ctx.put("findOrSearchflag", requestReader.getFindOrSearchflag());
File file = new File(apiRequest.getAbsolutePath(), api.getRequestFile().getName());
freeMarkerManager.outputTemp(file, "Java_api/module/req/request.java", ctx);
System.out.println("生成文件" + file.getName() + "成功");
}
//endregion
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
try { try {
//region 生成response //region 生成response
JavaClassReader javaClassReader = new JavaClassReader(api.getResponseFile()); ResponseReader responseReader = new ResponseReader(api.getResponseFile());
for (int i = 0; i < javaClassReader.getImportList().size(); i++) { for (int i = 0; i < responseReader.getImportList().size(); i++) {
String import_ = javaClassReader.getImportList().get(i); String import_ = responseReader.getImportList().get(i);
if (import_.contains(".module.entity.")) { if (import_.contains(".module.entity.")) {
javaClassReader.getImportList().set(i, import_); responseReader.getImportList().set(i, import_);
} }
} }
List<String> entNames = new ArrayList<>(); List<String> entNames = new ArrayList<>();
for (String s : javaClassReader.getDeptEntList()) { for (String s : responseReader.getDeptEntList()) {
Pattern compile = Pattern.compile("(.*\\.ent)\\.(.*)"); Pattern compile = Pattern.compile("(.*\\.ent)\\.(.*)");
Matcher matcher = compile.matcher(s); Matcher matcher = compile.matcher(s);
@ -182,7 +227,7 @@ public class ApiCallable implements Callable {
ctx.put("className", entReader.getClassName().replaceAll("Entity", "")); ctx.put("className", entReader.getClassName().replaceAll("Entity", ""));
ctx.put("body", entReader.getBody()); ctx.put("body", entReader.getBody());
ctx.put("tool", tool); ctx.put("tool", tool);
File EntFile = new File(entity.getAbsolutePath(), EntName+".java"); File EntFile = new File(entity.getAbsolutePath(), EntName + ".java");
freeMarkerManager.outputTemp(EntFile, "Java_api/module/ent/entity.java", ctx); freeMarkerManager.outputTemp(EntFile, "Java_api/module/ent/entity.java", ctx);
System.out.println("生成文件" + EntName + "成功"); System.out.println("生成文件" + EntName + "成功");
} }
@ -193,17 +238,17 @@ public class ApiCallable implements Callable {
{ {
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("package", "package " + javaClassReader.getDomainName() + "." + javaClassReader.getModuleName() + "." + "request;"); ctx.put("package", "package " + responseReader.getDomainName() + "." + responseReader.getModuleName() + "." + "request;");
ctx.put("domain", javaClassReader.getDomainName()); ctx.put("domain", responseReader.getDomainName());
ctx.put("module", javaClassReader.getModuleName()); ctx.put("module", responseReader.getModuleName());
ctx.put("importList", javaClassReader.getImportList()); ctx.put("importList", responseReader.getImportList());
ctx.put("entNames", entNames); ctx.put("entNames", entNames);
ctx.put("annotation", javaClassReader.getAnnotationList()); ctx.put("annotation", responseReader.getAnnotationList());
ctx.put("className", javaClassReader.getClassName().replaceAll("Response", "")); ctx.put("className", responseReader.getClassName().replaceAll("Response", ""));
ctx.put("body", javaClassReader.getBody()); ctx.put("body", responseReader.getBody());
ctx.put("tool", tool); ctx.put("tool", tool);
ctx.put("hasList", javaClassReader.isHasList()); ctx.put("hasList", responseReader.isHasList());
ctx.put("Tclass", javaClassReader.getTclass()); ctx.put("Tclass", responseReader.getTclass());
File file = new File(apiResponse.getAbsolutePath(), api.getResponseFile().getName().replaceAll("Request", "Response")); File file = new File(apiResponse.getAbsolutePath(), api.getResponseFile().getName().replaceAll("Request", "Response"));
freeMarkerManager.outputTemp(file, "Java_api/module/rsp/response.java", ctx); freeMarkerManager.outputTemp(file, "Java_api/module/rsp/response.java", ctx);
@ -215,122 +260,6 @@ public class ApiCallable implements Callable {
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
// for (String s : api.getDepReq()) {
// try {
// File f = new File(apiFile.getAbsolutePath(), s + ".java");
// if (!f.exists()) {
// System.err.println("文件" + f.getAbsolutePath() + "不存在");
// continue;
// }
// JavaClassReader javaClassReader = new JavaClassReader(f);
// for (int i = 0; i < javaClassReader.getImportList().size(); i++) {
// String import_ = javaClassReader.getImportList().get(i);
// if (import_.contains(".module.entity.")) {
// javaClassReader.getImportList().set(i, import_.replaceAll("\\.api\\.entity\\.", ".entity."));
// }
// }
//
// Method method = new Method();
// method.setStringMethod(api.getMethod());
// method.setRequest(javaClassReader.getClassName());
// method.setTarget(Tool.getRequestTarget(javaClassReader.getClassName()));
// method.setMethod(Tool.getRequestAction(javaClassReader.getClassName()));
// method.setManager(Tool.getRequestTarget(javaClassReader.getClassName()) + "Manager");
//
// {
// HashMap<String, Object> ctx = new HashMap<String, Object>();
// ctx.put("package", "package " + javaClassReader.getDomainName() + "." + javaClassReader.getModuleName() + "." + "request;");
// ctx.put("domain", javaClassReader.getDomainName());
// ctx.put("module", javaClassReader.getModuleName());
// ctx.put("importList", javaClassReader.getImportList());
// ctx.put("annotation", javaClassReader.getAnnotationList());
// ctx.put("className", javaClassReader.getClassName().replaceAll("Request", ""));
// ctx.put("body", javaClassReader.getBody());
// ctx.put("tool", tool);
// ctx.put("hasList", javaClassReader.isHasList());
// ctx.put("findOrSearchflag", javaClassReader.getFindOrSearchflag());
// File file = new File(request.getAbsolutePath(), f.getName());
//
// freeMarkerManager.outputTemp(file, "Java_api/module/req/request.java", ctx);
// System.out.println("生成文件" + file.getName() + "成功");
// }
// //endregion
// } catch (IOException e) {
// e.printStackTrace();
// }
//
// try {
// File f = new File(rsp.getAbsolutePath(), s.replaceAll("Request", "Response.java"));
// if (!f.exists()) {
// System.err.println("文件" + f.getAbsolutePath() + "不存在");
// }
// JavaClassReader javaClassReader = new JavaClassReader(f);
// for (int i = 0; i < javaClassReader.getImportList().size(); i++) {
// String import_ = javaClassReader.getImportList().get(i);
// if (import_.contains(".module.entity.")) {
// javaClassReader.getImportList().set(i, import_.replaceAll("\\.api\\.entity\\.", ".entity."));
// }
// }
//
// {
// HashMap<String, Object> ctx = new HashMap<String, Object>();
// ctx.put("package", "package " + javaClassReader.getDomainName() + "." + javaClassReader.getModuleName() + "." + "request;");
// ctx.put("domain", javaClassReader.getDomainName());
// ctx.put("module", javaClassReader.getModuleName());
// ctx.put("importList", javaClassReader.getImportList());
// ctx.put("annotation", javaClassReader.getAnnotationList());
// ctx.put("className", javaClassReader.getClassName().replaceAll("Response", ""));
// ctx.put("body", javaClassReader.getBody());
// ctx.put("tool", tool);
// ctx.put("hasList", javaClassReader.isHasList());
// ctx.put("Tclass", javaClassReader.getTclass());
// File file = new File(response.getAbsolutePath(), f.getName());
//
// freeMarkerManager.outputTemp(file, "Java_api/module/rsp/response.java", ctx);
// System.out.println("生成文件" + api.getResponseFile().getName() + "成功");
// }
// //endregion
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
//
// for (String s : api.getDepEnt()) {
//
// try {
// File f = new File(ent.getAbsolutePath(), s + ".java");
// if (!f.exists()) {
// System.out.println("文件" + f.getAbsolutePath() + "不存在");
// continue;
// }
// JavaClassReader javaClassReader = new JavaClassReader(f);
// for (int i = 0; i < javaClassReader.getImportList().size(); i++) {
// String import_ = javaClassReader.getImportList().get(i);
// if (import_.contains(".module.entity.")) {
// javaClassReader.getImportList().set(i, import_.replaceAll("\\.api\\.entity\\.", ".entity."));
// }
// }
//
// {
// HashMap<String, Object> ctx = new HashMap<String, Object>();
// ctx.put("package", "package " + javaClassReader.getDomainName() + "." + javaClassReader.getModuleName() + "." + "request;");
// ctx.put("domain", javaClassReader.getDomainName());
// ctx.put("module", javaClassReader.getModuleName());
// ctx.put("importList", javaClassReader.getImportList());
// ctx.put("annotation", javaClassReader.getAnnotationList());
// ctx.put("className", javaClassReader.getClassName().replaceAll("Entity", ""));
// ctx.put("body", javaClassReader.getBody());
// ctx.put("tool", tool);
// File file = new File(entity.getAbsolutePath(), f.getName());
// freeMarkerManager.outputTemp(file, "Java_api/module/ent/entity.java", ctx);
// System.out.println("生成文件" + file.getName() + "成功");
// }
// //endregion
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
} }
} }
@ -346,8 +275,7 @@ public class ApiCallable implements Callable {
{ {
System.out.println("生成基础类"); System.out.println("生成基础类");
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("domain", javaClass.getDomainName()); ctx.put("domain", String.join(".", domainList));
ctx.put("module", javaClass.getModuleName());
{ {
File file = new File(domain, "ApiEntity.java"); File file = new File(domain, "ApiEntity.java");
freeMarkerManager.outputTemp(file, "/Java_api/ApiEntity.java", ctx); freeMarkerManager.outputTemp(file, "/Java_api/ApiEntity.java", ctx);
@ -435,8 +363,7 @@ public class ApiCallable implements Callable {
System.out.println("生成模块:Test"); System.out.println("生成模块:Test");
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("tool", tool); ctx.put("tool", tool);
ctx.put("domain", javaClass.getDomainName()); ctx.put("domain", String.join(".", domainList));
ctx.put("module", javaClass.getModuleName());
ctx.put("apiList", apiList); ctx.put("apiList", apiList);
freeMarkerManager.outputTemp(new File(testdomain.getAbsolutePath(), "ApiTest.java"), "Java_api/ApiTest.java", ctx); freeMarkerManager.outputTemp(new File(testdomain.getAbsolutePath(), "ApiTest.java"), "Java_api/ApiTest.java", ctx);
} }

@ -406,10 +406,7 @@ public class Dialog {
String projectName = ""; String projectName = "";
// 尝试查找Windows下的项目名称 // 尝试查找Windows下的项目名称
String path = file.getAbsolutePath(); String path = file.getAbsolutePath();
String pathReplace = path.replaceAll("\\\\", "#"); String pathReplace = Tool.replaceSeparator(path, "#");
if (pathReplace.equals(path)) {
pathReplace = path.replaceAll("/", "#");
}
Pattern compile = Pattern.compile("#([^#]*)#src#main#java#"); Pattern compile = Pattern.compile("#([^#]*)#src#main#java#");
Matcher matcher = compile.matcher(pathReplace); Matcher matcher = compile.matcher(pathReplace);
if (matcher.find()) { if (matcher.find()) {
@ -523,7 +520,7 @@ public class Dialog {
if (new File(module).exists()) { if (new File(module).exists()) {
Dialog.showProgress("生成中..."); Dialog.showProgress("生成中...");
dBmanger.generateApi(new File(module), new File(api), controller.getData()); dBmanger.generateApi(new File(module), new File(api),controller.getDomainList(), controller.getData());
Dialog.stopPopup(); Dialog.stopPopup();
Platform.runLater(new Runnable() { Platform.runLater(new Runnable() {
@Override @Override

@ -42,24 +42,22 @@ public class EntityReader {
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
while ((line = bufferedReader.readLine()) != null) { while ((line = bufferedReader.readLine()) != null) {
if (line.matches("\\s*package\\s(.*);")) { if (line.matches("\\s*package\\s(.*);")) {
{
Pattern compile = Pattern.compile("\\s*package\\s(.*);"); Pattern compile = Pattern.compile("\\s*package\\s(.*);");
Matcher matcher = compile.matcher(line); Matcher matcher = compile.matcher(line);
if (matcher.find()) { if (matcher.find()) {
packageName = matcher.group(1); packageName = matcher.group(1);
} }
}
String s = line.replaceAll("package ", ""); {
s = s.replaceAll(";", ""); Pattern compile = Pattern.compile("\\s*package\\s(.*)\\.module\\.(.*).ent;");
String[] split = s.split("\\."); Matcher matcher = compile.matcher(line);
if (matcher.find()) {
if ("req".equals(split[split.length - 1]) || "rsp".equals(split[split.length - 1]) || "ent".equals(split[split.length - 1])) { domainName = matcher.group(1);
moduleName = split[split.length - 2]; moduleName = matcher.group(2);
for (int i = 0; i < split.length - 2; i++) {
domainName += split[i] + ".";
} }
domainName = domainName.substring(0, domainName.length() - 1);
} }
continue; continue;
} }
if (line.matches("import\\s.*")) { if (line.matches("import\\s.*")) {
@ -137,13 +135,13 @@ public class EntityReader {
} }
} }
Iterator<String> iterator = body.iterator(); Iterator<String> iterator = body.iterator();
while (iterator.hasNext()){ while (iterator.hasNext()) {
String next = iterator.next(); String next = iterator.next();
if (next.contains("@ColumnName")){ if (next.contains("@ColumnName")) {
iterator.remove(); iterator.remove();
} }
if (next.contains("@ColumnDescription")){ if (next.contains("@ColumnDescription")) {
iterator.remove(); iterator.remove();
} }
} }

@ -1,153 +0,0 @@
package xyz.wbsite.dbtool.javafx.tool;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class JavaEnumReader {
private File javaClass;
private String packageName;
private String domainName;
private String moduleName;
private List<String> annotationList;
private String className;
private List<String> body;
public JavaEnumReader(File javaClass) throws IOException {
this.javaClass = javaClass;
annotationList = new ArrayList<>();
domainName = "";
read();
}
private void read() throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(javaClass), "utf-8"));
int step = 1;//1-读取package2-读取import3-读取类注释4-读取类名、父类5-读取类体
String line = null;
StringBuffer zs = new StringBuffer();
StringBuffer sb = new StringBuffer();
while ((line = bufferedReader.readLine()) != null) {
if (line.startsWith("package")) {
packageName = line;
String s = line.replaceAll("package ", "");
s = s.replaceAll(";", "");
String[] split = s.split("\\.");
if ("enums".equals(split[split.length - 1])) {
moduleName = split[split.length - 2];
for (int i = 0; i < split.length - 2; i++) {
domainName += split[i] + ".";
}
domainName = domainName.substring(0, domainName.length() - 1);
}
continue;
}
if (line.contains("/**") || line.contains("*") || line.contains("*/")) {
if (zs != null) {
zs.append(line + "\n");
annotationList.add(line);
if (line.contains("*/")) {
zs = null;
}
}
}
if (line.contains("enum")) {
line = line.replaceAll("\\{", " { ");
line = line.replaceAll("}", " } ");
line = line.replaceAll("\\s+", " ");
String[] split = line.split("\\s");
for (int i = 0; i < split.length; i++) {
if ("enum".equals(split[i])) {
className = split[i + 1];
}
}
}
sb.append(line + "\n");
}
body = new ArrayList<>(Arrays.asList(sb.substring(sb.indexOf("{")).split("\n")));
for (int i = 0; i < body.size(); i++) {
if (body.get(i).contains("{")) {
body.set(i, body.get(i).replaceAll("\\{", ""));
break;
}
}
for (int i = body.size() - 1; i > 0; i--) {
if (body.get(i).contains("}")) {
body.set(i, body.get(i).replaceAll("\\}", ""));
break;
}
}
bufferedReader.close();
}
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public String getDomainName() {
return domainName;
}
public void setDomainName(String domainName) {
this.domainName = domainName;
}
public String getModuleName() {
return moduleName;
}
public void setModuleName(String moduleName) {
this.moduleName = moduleName;
}
public List<String> getAnnotationList() {
return annotationList;
}
public void setAnnotationList(List<String> annotationList) {
this.annotationList = annotationList;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public List<String> getBody() {
return body;
}
public void setBody(List<String> body) {
this.body = body;
}
public File getJavaClass() {
return javaClass;
}
public void setJavaClass(File javaClass) {
this.javaClass = javaClass;
}
public static void main(String[] args) throws IOException {
JavaEnumReader javaClassReader = new JavaEnumReader(new File("C:\\dbtool\\example\\src\\main\\java\\com\\example\\example\\enums\\Type.java"));
}
}

@ -5,7 +5,7 @@ import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class JavaClassReader { public class RequestReader {
private File javaClass; private File javaClass;
private String packageName; private String packageName;
@ -22,7 +22,7 @@ public class JavaClassReader {
private String findOrSearchflag = "0"; private String findOrSearchflag = "0";
private String Tclass = null; private String Tclass = null;
public JavaClassReader(File javaClass) throws IOException { public RequestReader(File javaClass) throws IOException {
this.javaClass = javaClass; this.javaClass = javaClass;
importList = new ArrayList<>(); importList = new ArrayList<>();
annotationList = new ArrayList<>(); annotationList = new ArrayList<>();
@ -42,24 +42,22 @@ public class JavaClassReader {
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
while ((line = bufferedReader.readLine()) != null) { while ((line = bufferedReader.readLine()) != null) {
if (line.matches("\\s*package\\s(.*);")) { if (line.matches("\\s*package\\s(.*);")) {
{
Pattern compile = Pattern.compile("\\s*package\\s(.*);"); Pattern compile = Pattern.compile("\\s*package\\s(.*);");
Matcher matcher = compile.matcher(line); Matcher matcher = compile.matcher(line);
if (matcher.find()) { if (matcher.find()) {
packageName = matcher.group(1); packageName = matcher.group(1);
} }
}
String s = line.replaceAll("package ", ""); {
s = s.replaceAll(";", ""); Pattern compile = Pattern.compile("\\s*package\\s(.*)\\.module\\.(.*).req;");
String[] split = s.split("\\."); Matcher matcher = compile.matcher(line);
if (matcher.find()) {
if ("req".equals(split[split.length - 1]) || "rsp".equals(split[split.length - 1]) || "ent".equals(split[split.length - 1])) { domainName = matcher.group(1);
moduleName = split[split.length - 2]; moduleName = matcher.group(2);
for (int i = 0; i < split.length - 2; i++) {
domainName += split[i] + ".";
} }
domainName = domainName.substring(0, domainName.length() - 1);
} }
continue; continue;
} }
if (line.matches("import\\s.*")) { if (line.matches("import\\s.*")) {
@ -265,7 +263,7 @@ public class JavaClassReader {
} }
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
JavaClassReader javaClassReader = new JavaClassReader(new File("D:\\wangbing\\Project\\dbtool\\target\\project\\EXAMPLE-WEB\\src\\main\\java\\com\\example\\module\\system\\rsp\\DictFindResponse.java")); RequestReader requestReader = new RequestReader(new File("D:\\wangbing\\Project\\dbtool\\target\\project\\EXAMPLE-WEB\\src\\main\\java\\com\\example\\module\\system\\rsp\\DictFindResponse.java"));
System.out.println(); System.out.println();
} }

@ -0,0 +1,270 @@
package xyz.wbsite.dbtool.javafx.tool;
import java.io.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ResponseReader {
private File javaClass;
private String packageName;
private String domainName;
private String moduleName;
private List<String> annotationList;
private List<String> importList;
private Set<String> deptReqList;
private Set<String> deptEntList;
private String className;
private String fatherName;
private List<String> body;
private boolean hasList = false;
private String findOrSearchflag = "0";
private String Tclass = null;
public ResponseReader(File javaClass) throws IOException {
this.javaClass = javaClass;
importList = new ArrayList<>();
annotationList = new ArrayList<>();
deptReqList = new HashSet<>();
deptEntList = new HashSet<>();
domainName = "";
read();
}
private void read() throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(javaClass), "utf-8"));
int step = 1;//1-读取package2-读取import3-读取类注释4-读取类名、父类5-读取类体
String line = null;
StringBuffer zs = new StringBuffer();
StringBuffer sb = new StringBuffer();
while ((line = bufferedReader.readLine()) != null) {
if (line.matches("\\s*package\\s(.*);")) {
{
Pattern compile = Pattern.compile("\\s*package\\s(.*);");
Matcher matcher = compile.matcher(line);
if (matcher.find()) {
packageName = matcher.group(1);
}
}
{
Pattern compile = Pattern.compile("\\s*package\\s(.*)\\.module\\.(.*).rsp;");
Matcher matcher = compile.matcher(line);
if (matcher.find()) {
domainName = matcher.group(1);
moduleName = matcher.group(2);
}
}
continue;
}
if (line.matches("import\\s.*")) {
if (line.contains(".ent.")) {
Pattern compile = Pattern.compile("import\\s+(.*\\.ent\\..*);");
Matcher matcher = compile.matcher(line);
if (matcher.find()) {
String group = matcher.group(1);
deptEntList.add(group);
}
} else if (line.contains(".req.")) {
Pattern compile = Pattern.compile("import\\s+(.*\\.req\\..*);");
Matcher matcher = compile.matcher(line);
if (matcher.find()) {
String group = matcher.group(1);
deptReqList.add(group);
}
} else if (!line.contains("frame")) {
importList.add(line);
}
continue;
}
if (line.contains("/**") || line.contains("*") || line.contains("*/")) {
if (zs != null) {
zs.append(line + "\n");
annotationList.add(line);
if (line.contains("*/")) {
zs = null;
}
}
}
if (line.contains("class")) {
line = line.replaceAll("\\{", " { ");
line = line.replaceAll("}", " } ");
line = line.replaceAll("\\s+", " ");
String[] split = line.split("\\s");
for (int i = 0; i < split.length; i++) {
if ("class".equals(split[i])) {
className = split[i + 1];
}
if ("extends".equals(split[i])) {
fatherName = split[i + 1];
if (fatherName.contains("FindResponse") || fatherName.contains("GetAllResponse")) {
hasList = true;
Pattern pattern = Pattern.compile("<(.*?)>");
Matcher matcher = pattern.matcher(fatherName);
if (matcher.find()) {
String group = matcher.group(1);
Tclass = group;
}
}
if (fatherName.contains("FindRequest")) {
findOrSearchflag = "1";
} else if (fatherName.contains("SearchRequest")) {
findOrSearchflag = "2";
}
}
}
}
sb.append(line + "\n");
}
body = new ArrayList<>(Arrays.asList(sb.substring(sb.indexOf("{")).split("\n")));
for (int i = 0; i < body.size(); i++) {
if (body.get(i).contains("{")) {
body.set(i, body.get(i).replaceAll("\\{", ""));
String s = body.get(i);
if (s.length() <= 1) {
body.remove(i);
}
break;
}
}
for (int i = body.size() - 1; i >= 0; i--) {
if (body.get(i).contains("}")) {
body.set(i, body.get(i).replaceAll("}", ""));
break;
}
}
if (body.size() > 1 && "".equals(body.get(0))) {
body.remove(0);
}
if (body.size() > 1 && "".equals(body.get(body.size() - 1))) {
body.remove(body.size() - 1);
}
bufferedReader.close();
}
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public String getDomainName() {
return domainName;
}
public void setDomainName(String domainName) {
this.domainName = domainName;
}
public String getModuleName() {
return moduleName;
}
public void setModuleName(String moduleName) {
this.moduleName = moduleName;
}
public List<String> getAnnotationList() {
return annotationList;
}
public void setAnnotationList(List<String> annotationList) {
this.annotationList = annotationList;
}
public List<String> getImportList() {
return importList;
}
public void setImportList(List<String> importList) {
this.importList = importList;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getFatherName() {
return fatherName;
}
public void setFatherName(String fatherName) {
this.fatherName = fatherName;
}
public List<String> getBody() {
return body;
}
public void setBody(List<String> body) {
this.body = body;
}
public File getJavaClass() {
return javaClass;
}
public void setJavaClass(File javaClass) {
this.javaClass = javaClass;
}
public boolean isHasList() {
return hasList;
}
public void setHasList(boolean hasList) {
this.hasList = hasList;
}
public String getTclass() {
return Tclass;
}
public String getFindOrSearchflag() {
return findOrSearchflag;
}
public void setFindOrSearchflag(String findOrSearchflag) {
this.findOrSearchflag = findOrSearchflag;
}
public void setTclass(String tclass) {
Tclass = tclass;
}
public Set<String> getDeptReqList() {
return deptReqList;
}
public void setDeptReqList(Set<String> deptReqList) {
this.deptReqList = deptReqList;
}
public Set<String> getDeptEntList() {
return deptEntList;
}
public void setDeptEntList(Set<String> deptEntList) {
this.deptEntList = deptEntList;
}
public static void main(String[] args) throws IOException {
ResponseReader requestReader = new ResponseReader(new File("D:\\wangbing\\Project\\dbtool\\target\\project\\EXAMPLE-WEB\\src\\main\\java\\com\\example\\module\\system\\rsp\\DictFindResponse.java"));
System.out.println();
}
}

@ -65,6 +65,7 @@ public class Tool {
public static String uuid() { public static String uuid() {
return UUID.randomUUID().toString(); return UUID.randomUUID().toString();
} }
/** /**
* FileCreateRequest -> file * FileCreateRequest -> file
* *
@ -384,6 +385,21 @@ public class Tool {
return false; return false;
} }
/**
*
*
* @param path
* @param sep
* @return
*/
public static String replaceSeparator(String path, String sep) {
String pathReplace = path.replaceAll("\\\\", "#");
if (pathReplace.equals(path)) {
pathReplace = path.replaceAll("/", "#");
}
return pathReplace;
}
public static void exchange(List list, int i, int j) { public static void exchange(List list, int i, int j) {
Object o1 = list.get(i); Object o1 = list.get(i);
Object o2 = list.get(j); Object o2 = list.get(j);

@ -5,6 +5,12 @@ package ${domain}.${module}.req;
${i} ${i}
</#if> </#if>
</#list> </#list>
<#list entNames as entName>
import ${domain}.${module}.ent.${entName};
</#list>
<#list reqNames as reqName>
import ${domain}.${module}.ent.${reqName};
</#list>
import ${domain}.${module}.rsp.${className}Response; import ${domain}.${module}.rsp.${className}Response;
import ${domain}.ApiRequest; import ${domain}.ApiRequest;
<#if findOrSearchflag=='1'> <#if findOrSearchflag=='1'>

Loading…
Cancel
Save

Powered by TurnKey Linux.