Former-commit-id: e34ba8998eb9205d173d31f53ad8e1704abe63b7
master
wangbing 5 years ago
parent da890801a9
commit 1a2b32d3b9

@ -16,21 +16,17 @@ import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.control.cell.TextFieldTableCell;
import javafx.util.Callback; import javafx.util.Callback;
import javafx.util.converter.DefaultStringConverter; import javafx.util.converter.DefaultStringConverter;
import xyz.wbsite.dbtool.javafx.po.Api;
import xyz.wbsite.dbtool.javafx.po.ApiMethod; import xyz.wbsite.dbtool.javafx.po.ApiMethod;
import xyz.wbsite.dbtool.javafx.po.Doc; import xyz.wbsite.dbtool.javafx.po.Doc;
import xyz.wbsite.dbtool.javafx.tool.ApiClassReader;
import xyz.wbsite.dbtool.javafx.tool.DocClassReader; import xyz.wbsite.dbtool.javafx.tool.DocClassReader;
import xyz.wbsite.dbtool.javafx.tool.DocRequestReader;
import xyz.wbsite.dbtool.javafx.tool.DocResponseReader;
import xyz.wbsite.dbtool.javafx.tool.Tool; import xyz.wbsite.dbtool.javafx.tool.Tool;
import xyz.wbsite.dbtool.javafx.view.DBCheckBoxTableCell; import xyz.wbsite.dbtool.javafx.view.DBCheckBoxTableCell;
import xyz.wbsite.dbtool.web.frame.utils.FileUtil;
import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@ -151,71 +147,74 @@ public class OptionDocController {
return; return;
} }
File ajaxPath = Tool.createPath(actionPath.get(0), "ajax"); // File ajaxPath = Tool.createPath(actionPath.get(0), "ajax");
for (File file : ajaxPath.listFiles()) { // for (File file : ajaxPath.listFiles()) {
String module = file.getName(); // String module = file.getName();
for (File tar : file.listFiles()) { // for (File tar : file.listFiles()) {
try { // try {
String target = tar.getName().replaceAll("Ajax$", "").replaceAll(".java", ""); // String target = tar.getName().replaceAll("Ajax$", "").replaceAll(".java", "");
DocClassReader docClassReader = new DocClassReader(tar); // DocClassReader docClassReader = new DocClassReader(tar);
//
for (ApiMethod apiMethod : docClassReader.getMethodList()) { // for (ApiMethod apiMethod : docClassReader.getMethodList()) {
Doc doc = new Doc(); // Doc doc = new Doc();
doc.setType("Ajax"); // doc.setType("ajax");
doc.setModule(module); // doc.setModule(module);
doc.setTarget(target); // doc.setTarget(target);
doc.setRequest(apiMethod.getRequest()); // doc.setRequest(apiMethod.getRequest());
doc.setResponse(apiMethod.getResponse()); // doc.setResponse(apiMethod.getResponse());
doc.setMethod(apiMethod.getMethod()); // doc.setMethod(apiMethod.getMethod());
//
List<File> reqFiles = Tool.findRequest(moduleFile, apiMethod.getRequest() + ".java"); // List<File> reqFiles = Tool.findRequest(moduleFile, apiMethod.getRequest() + ".java");
if (reqFiles.size() == 0) { // if (reqFiles.size() == 0) {
doc.setError(doc.getError() + "未找到请求"); // doc.setError(doc.getError() + "未找到请求");
} else if (reqFiles.size() > 1) { // } else if (reqFiles.size() > 1) {
doc.setError(doc.getError() + "找到多个请求"); // doc.setError(doc.getError() + "找到多个请求");
} else { // } else {
doc.setRequestFile(reqFiles.get(0)); // DocRequestReader docRequestReader = new DocRequestReader("ajax", reqFiles.get(0));
//查找依赖ent //
List<String> entities = findEntities(reqFiles.get(0)); // //查找依赖ent
for (String entity : entities) { // List<String> entities = findEntities(reqFiles.get(0));
doc.getDepEnt().add(entity); // for (String entity : entities) {
} // System.out.println();
//// doc.getDepEnt().add(entity);
//查找依赖req // }
List<String> reqss = findReq(reqFiles.get(0)); //
for (String string : reqss) { // //查找依赖req
doc.getDepReq().add(string); // List<String> reqss = findEntities(reqFiles.get(0));
} // for (String string : reqss) {
} //// doc.getDepReq().add(string);
// }
List<File> rspfiles = Tool.findResponse(moduleFile, apiMethod.getResponse() + ".java"); // }
if (rspfiles.size() == 0) { //
doc.setError(doc.getError() + "未找到响应"); // List<File> rspfiles = Tool.findResponse(moduleFile, apiMethod.getResponse() + ".java");
} else if (rspfiles.size() > 1) { // if (rspfiles.size() == 0) {
doc.setError(doc.getError() + "找到多个响应"); // doc.setError(doc.getError() + "未找到响应");
} else { // } else if (rspfiles.size() > 1) {
doc.setResponseFile(rspfiles.get(0)); // doc.setError(doc.getError() + "找到多个响应");
//查找依赖ent // } else {
List<String> entities = findEntities(rspfiles.get(0)); // DocRequestReader docRequestReader = new DocRequestReader("ajax", reqFiles.get(0));
for (String entity : entities) { //
doc.getDepEnt().add(entity); // //查找依赖ent
} // List<String> entities = findEntities(rspfiles.get(0));
// for (String entity : entities) {
//查找依赖req // System.out.println();
List<String> reqss = findReq(rspfiles.get(0)); // }
for (String string : reqss) { //
doc.getDepReq().add(string); // //查找依赖req
} // List<String> reqss = findEntities(rspfiles.get(0));
} // for (String string : reqss) {
// System.out.println("");
doc.setCheck(true); // }
data.add(doc); // }
} //
} catch (IOException e) { // doc.setCheck(true);
e.printStackTrace(); // data.add(doc);
} // }
} // } catch (IOException e) {
} // e.printStackTrace();
// }
// }
// }
File apiPath = Tool.createPath(actionPath.get(0), "api"); File apiPath = Tool.createPath(actionPath.get(0), "api");
for (File file : apiPath.listFiles()) { for (File file : apiPath.listFiles()) {
@ -227,7 +226,7 @@ public class OptionDocController {
for (ApiMethod apiMethod : docClassReader.getMethodList()) { for (ApiMethod apiMethod : docClassReader.getMethodList()) {
Doc doc = new Doc(); Doc doc = new Doc();
doc.setType("Api"); doc.setType("api");
doc.setModule(module); doc.setModule(module);
doc.setTarget(target); doc.setTarget(target);
doc.setRequest(apiMethod.getRequest()); doc.setRequest(apiMethod.getRequest());
@ -240,18 +239,9 @@ public class OptionDocController {
} else if (reqFiles.size() > 1) { } else if (reqFiles.size() > 1) {
doc.setError(doc.getError() + "找到多个请求"); doc.setError(doc.getError() + "找到多个请求");
} else { } else {
doc.setRequestFile(reqFiles.get(0)); DocRequestReader docRequestReader = new DocRequestReader(reqFiles.get(0));
//查找依赖ent doc.setTitle(docRequestReader.getClassNote());
List<String> entities = findEntities(reqFiles.get(0)); doc.setReqParams(docRequestReader.getFieldDocList());
for (String entity : entities) {
doc.getDepEnt().add(entity);
}
//查找依赖req
List<String> reqss = findReq(reqFiles.get(0));
for (String string : reqss) {
doc.getDepReq().add(string);
}
} }
List<File> rspfiles = Tool.findResponse(moduleFile, apiMethod.getResponse() + ".java"); List<File> rspfiles = Tool.findResponse(moduleFile, apiMethod.getResponse() + ".java");
@ -260,18 +250,8 @@ public class OptionDocController {
} else if (rspfiles.size() > 1) { } else if (rspfiles.size() > 1) {
doc.setError(doc.getError() + "找到多个响应"); doc.setError(doc.getError() + "找到多个响应");
} else { } else {
doc.setResponseFile(rspfiles.get(0)); DocResponseReader docResponseReader = new DocResponseReader(rspfiles.get(0));
//查找依赖ent doc.setRspParams(docResponseReader.getFieldDocList());
List<String> entities = findEntities(rspfiles.get(0));
for (String entity : entities) {
doc.getDepEnt().add(entity);
}
//查找依赖req
List<String> reqss = findReq(rspfiles.get(0));
for (String string : reqss) {
doc.getDepReq().add(string);
}
} }
doc.setCheck(true); doc.setCheck(true);
@ -289,88 +269,21 @@ public class OptionDocController {
public List<String> findEntities(File file) { public List<String> findEntities(File file) {
ArrayList<String> strings = new ArrayList<>(); ArrayList<String> strings = new ArrayList<>();
InputStreamReader read = null;//考虑到编码格式
try {
read = new InputStreamReader(new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
//指定字符串判断处
if (line.contains(".ent.")) {
Pattern compile = Pattern.compile(".*\\.ent\\.(.*);");
Matcher matcher = compile.matcher(line);
if (matcher.find()) {
String group = matcher.group(1);
strings.add(group);
// System.out.println(group);
}
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return strings;
}
public List<String> findReq(File file) {
ArrayList<String> strings = new ArrayList<>();
InputStreamReader read = null;//考虑到编码格式
try {
read = new InputStreamReader(new FileInputStream(file), "UTF-8");
BufferedReader bufferedReader = new BufferedReader(read);
String line = null;
Pattern compile1 = Pattern.compile(".*private\\s([a-zA-Z_]*Request)\\s[a-zA-Z_]*Request;.*");
Pattern compile2 = Pattern.compile(".*private\\sList<([a-zA-Z_]*Request)>\\s[a-zA-Z_]*Requests;.*");
Pattern compile3 = Pattern.compile(".*private\\sList<([a-zA-Z_]*Request)>\\s[a-zA-Z_]*RequestList;.*");
while ((line = bufferedReader.readLine()) != null) {
//携带一个Request
if (line.matches(".*private\\s([a-zA-Z_]*Request)\\s[a-zA-Z_]*Request;.*")) {
Matcher matcher = compile1.matcher(line);
if (matcher.find()) {
String group = matcher.group(1);
strings.add(group);
System.out.println(group);
}
}
//携带一个List<*Request> *Requests;
if (line.matches(".*private\\sList<([a-zA-Z_]*Request)>\\s[a-zA-Z_]*Requests;.*")) {
Matcher matcher = compile2.matcher(line);
if (matcher.find()) { List<String> list = FileUtil.readFileToLines(file);
String group = matcher.group(1); for (String s : list) {
s = s.trim();
strings.add(group);
System.out.println(group);
}
}
//携带一个List<*Request> *RequestList;
if (line.matches(".*private\\sList<([a-zA-Z_]*Request)>\\s[a-zA-Z_]*RequestList;.*")) {
Matcher matcher = compile3.matcher(line);
if (s.matches("private\\s+(.*)\\s+(.*);")) {
Pattern compile = Pattern.compile("private\\s+(.*)\\s+(.*);");
Matcher matcher = compile.matcher(s);
if (matcher.find()) { if (matcher.find()) {
String group = matcher.group(1); String group = matcher.group(1);
if (!Tool.getJavaField().contains(group)) {
strings.add(group); strings.add(group);
System.out.println(group);
} }
} }
} }
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
return strings; return strings;
} }

@ -7,19 +7,14 @@ import org.w3c.dom.NodeList;
import xyz.wbsite.dbtool.javafx.manger.FreeMarkerManager; import xyz.wbsite.dbtool.javafx.manger.FreeMarkerManager;
import xyz.wbsite.dbtool.javafx.manger.ManagerFactory; import xyz.wbsite.dbtool.javafx.manger.ManagerFactory;
import xyz.wbsite.dbtool.javafx.po.Doc; import xyz.wbsite.dbtool.javafx.po.Doc;
import xyz.wbsite.dbtool.javafx.tool.DocRequestReader;
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 xyz.wbsite.dbtool.web.frame.utils.FileUtil;
import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DocCallable implements Callable { public class DocCallable implements Callable {
@ -75,24 +70,20 @@ public class DocCallable implements Callable {
} }
} }
if (ajaxList.size() > 0) { if (ajaxList.size() > 0) {
File ajax = Tool.createFile(this.docFile, "ajax-" + version + ".html"); File ajax = Tool.createFile(this.docFile, "index.html");
for (Doc doc : ajaxList) { System.out.println("生成模块:Test");
HashMap<String, Object> ctx = new HashMap<String, Object>();
DocRequestReader requestReader = new DocRequestReader(doc.getRequestFile()); ctx.put("ajaxList", ajax);
// generateRequest(requestReader); freeMarkerManager.outputTemp(ajax, "Doc/data.json", ctx);
ResponseReader responseReader = new ResponseReader(doc.getResponseFile());
// generateResponse(responseReader);
}
} }
if (apiList.size() > 0) { if (apiList.size() > 0) {
File api = Tool.createFile(this.docFile, "api-" + version + ".html"); File api = Tool.createFile(this.docFile, "api-" + version + ".html");
for (Doc doc : apiList) { for (Doc doc : apiList) {
RequestReader requestReader = new RequestReader(doc.getRequestFile()); // RequestReader requestReader = new RequestReader(doc.getRequestFile());
// generateRequest(requestReader); // generateRequest(requestReader);
ResponseReader responseReader = new ResponseReader(doc.getResponseFile()); // ResponseReader responseReader = new ResponseReader(doc.getResponseFile());
// generateResponse(responseReader); // generateResponse(responseReader);
} }
} }

@ -1,6 +1,5 @@
package xyz.wbsite.dbtool.javafx.po; package xyz.wbsite.dbtool.javafx.po;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -18,13 +17,11 @@ public class Doc {
private String target; private String target;
private String method; private String method;
private List<DocReq> reqParams = new ArrayList<>(); private String title;
private List<DocReq> rspParams = new ArrayList<>(); private List<DocParam> reqParams = new ArrayList<>();
private List<DocParam> rspParams = new ArrayList<>();
private Map<String, DocEnt> entParams = new HashMap<>(); private Map<String, DocEnt> entParams = new HashMap<>();
private File requestFile;
private File responseFile;
private String error = ""; private String error = "";
public boolean isCheck() { public boolean isCheck() {
@ -75,22 +72,6 @@ public class Doc {
this.method = method; this.method = method;
} }
public File getRequestFile() {
return requestFile;
}
public void setRequestFile(File requestFile) {
this.requestFile = requestFile;
}
public File getResponseFile() {
return responseFile;
}
public void setResponseFile(File responseFile) {
this.responseFile = responseFile;
}
public String getError() { public String getError() {
return error; return error;
} }
@ -106,4 +87,36 @@ public class Doc {
public void setType(String type) { public void setType(String type) {
this.type = type; this.type = type;
} }
public List<DocParam> getReqParams() {
return reqParams;
}
public void setReqParams(List<DocParam> reqParams) {
this.reqParams = reqParams;
}
public List<DocParam> getRspParams() {
return rspParams;
}
public void setRspParams(List<DocParam> rspParams) {
this.rspParams = rspParams;
}
public Map<String, DocEnt> getEntParams() {
return entParams;
}
public void setEntParams(Map<String, DocEnt> entParams) {
this.entParams = entParams;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
} }

@ -1,8 +1,8 @@
package xyz.wbsite.dbtool.javafx.po; package xyz.wbsite.dbtool.javafx.po;
public class DocReq { public class DocParam {
private String name; private String name;
private String type; private String tupe;
private String note; private String note;
private boolean required; private boolean required;
@ -14,14 +14,6 @@ public class DocReq {
this.name = name; this.name = name;
} }
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getNote() { public String getNote() {
return note; return note;
} }
@ -37,4 +29,12 @@ public class DocReq {
public void setRequired(boolean required) { public void setRequired(boolean required) {
this.required = required; this.required = required;
} }
public String getTupe() {
return tupe;
}
public void setTupe(String tupe) {
this.tupe = tupe;
}
} }

@ -1,12 +1,10 @@
package xyz.wbsite.dbtool.javafx.tool; package xyz.wbsite.dbtool.javafx.tool;
import xyz.wbsite.dbtool.javafx.po.ApiMethod; import xyz.wbsite.dbtool.javafx.po.ApiMethod;
import xyz.wbsite.dbtool.web.frame.utils.FileUtil;
import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@ -24,12 +22,11 @@ public class DocClassReader {
} }
private void read() throws IOException { private void read() throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(javaClass), "utf-8")); List<String> lines = FileUtil.readFileToLines(this.javaClass);
String line = null;
Pattern compile = Pattern.compile("\\s+public (.*Response)\\s+(.*)\\((.*Request) request.*\\) \\{"); Pattern compile = Pattern.compile("\\s+public (.*Response)\\s+(.*)\\((.*Request) request.*\\) \\{");
while ((line = bufferedReader.readLine()) != null) {
for (String line : lines) {
Matcher matcher = compile.matcher(line); Matcher matcher = compile.matcher(line);
if (matcher.find()) { if (matcher.find()) {
@ -40,7 +37,6 @@ public class DocClassReader {
methodList.add(apiMethod); methodList.add(apiMethod);
} }
} }
bufferedReader.close();
} }
public File getJavaClass() { public File getJavaClass() {

@ -0,0 +1,61 @@
package xyz.wbsite.dbtool.javafx.tool;
import xyz.wbsite.dbtool.javafx.po.DocParam;
import xyz.wbsite.dbtool.web.frame.utils.FileUtil;
import xyz.wbsite.dbtool.web.frame.utils.MapperUtil;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DocEntityReader extends EntityReader{
private List<DocParam> fieldDocList;
public DocEntityReader(File javaClass) {
super(javaClass);
fieldDocList = new ArrayList<>();
DocParam docParam = new DocParam();
for (String s : getBody()) {
s = s.trim();
// 提取注释
if (s.startsWith("/**") || s.endsWith("*/") || s.startsWith("*")) {
s = s.replaceAll("^/\\*\\*", "");
s = s.replaceAll("^\\*/$", "");
s = s.replaceAll("^\\*", "");
docParam.setNote(nullF(docParam.getNote()) + s.trim());
}
// 必填项检查
if (s.startsWith("@NotBlank") || s.startsWith("@NotNull")) {
docParam.setRequired(true);
}
if (s.matches("private\\s(.*)\\s(.*);")) {
Pattern compile = Pattern.compile("private\\s(.*)\\s(.*);");
Matcher matcher = compile.matcher(s);
if (matcher.find()) {
docParam.setTupe(matcher.group(1));
docParam.setName(matcher.group(2));
fieldDocList.add(docParam);
System.out.println(MapperUtil.toJson(docParam));
docParam = new DocParam();
}
}
}
}
public List<DocParam> getFieldDocList() {
return fieldDocList;
}
public void setFieldDocList(List<DocParam> fieldDocList) {
this.fieldDocList = fieldDocList;
}
private String nullF(String value) {
return value == null ? "" : value;
}
}

@ -1,47 +1,136 @@
package xyz.wbsite.dbtool.javafx.tool; package xyz.wbsite.dbtool.javafx.tool;
import xyz.wbsite.dbtool.javafx.po.DocParam;
import java.io.File; import java.io.File;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class DocRequestReader extends RequestReader { public class DocRequestReader extends RequestReader {
private Map<String, String> fieldDocMap; private String classNote;
private List<DocParam> fieldDocList;
private Map<String, List<DocParam>> ents;
public DocRequestReader(File javaClass) { public DocRequestReader(File javaClass) {
super(javaClass); super(javaClass);
fieldDocList = new ArrayList<>();
ents = new HashMap<>();
List<String> notesList = getNotesList();
for (String s : notesList) {
s = s.trim();
// 提取注释
if ((s.startsWith("/**") || s.endsWith("*/") || s.startsWith("*")) && !s.contains("@")) {
s = s.replaceAll("^/\\*\\*", "");
s = s.replaceAll("^\\*/$", "");
s = s.replaceAll("^\\*", "");
classNote = nullF(classNote) + s.trim();
}
} }
@Override DocParam docParam = new DocParam();
protected void read() {
super.read();
fieldDocMap = new HashMap<>();
String doc = null;
String field = null;
for (String s : getBody()) { for (String s : getBody()) {
if (s.matches("\\s+/\\*(\\*)?(.*)(\\*/)?")) { s = s.trim();
Pattern compile = Pattern.compile("\\s+/\\*(\\*)?(.*)(\\*/)?");
// 提取注释
if (s.startsWith("/**") || s.endsWith("*/") || s.startsWith("*")) {
s = s.replaceAll("^/\\*\\*", "");
s = s.replaceAll("^\\*/$", "");
s = s.replaceAll("^\\*", "");
docParam.setNote(nullF(docParam.getNote()) + s.trim());
}
// 必填项检查
if (s.startsWith("@NotBlank") || s.startsWith("@NotNull")) {
docParam.setRequired(true);
}
if (s.matches("private\\s(.*)\\s(.*);")) {
Pattern compile = Pattern.compile("private\\s(.*)\\s(.*);");
Matcher matcher = compile.matcher(s); Matcher matcher = compile.matcher(s);
if (matcher.find()) { if (matcher.find()) {
doc = matcher.group(2); String type = matcher.group(1);
docParam.setTupe(type);
if (!Tool.getJavaField().contains(type)) {//读取自定义对象
if (type.endsWith("Request")) {
String module = null;
for (String s1 : getImportList()) {
Pattern compile1 = Pattern.compile("import\\s+.*\\.module\\.(.*)\\.req\\." + type);
Matcher matcher1 = compile1.matcher(s1);
if (matcher1.find()) {
module = matcher1.group(1);
}
}
if (module == null) {// 同目录下查找
List<File> files = Tool.find(this.getJavaClass().getParentFile().getParentFile(), type + ".java");
if (files.size() == 1) {
DocRequestReader docRequestReader = new DocRequestReader(files.get(0));
ents.put(docRequestReader.getModuleName() + "#" + type, docRequestReader.getFieldDocList());
}
} else {//其他模块下查找
File path = Tool.createPath(this.getJavaClass().getParentFile().getParentFile().getParentFile(), module);
List<File> files = Tool.find(path, type + ".java");
if (files.size() == 1) {
DocRequestReader docRequestReader = new DocRequestReader(files.get(0));
ents.put(docRequestReader.getModuleName() + "#" + type, docRequestReader.getFieldDocList());
}
}
} else { } else {
doc = ""; String module = null;
for (String s1 : getImportList()) {
Pattern compile1 = Pattern.compile("import\\s+.*\\.module\\.(.*)\\.ent\\." + type);
Matcher matcher1 = compile1.matcher(s1);
if (matcher1.find()) {
module = matcher1.group(1);
} }
} }
if (s.matches("\\s+\\*\\s+(.*)")) { if (module == null) {// 同目录下查找
Pattern compile = Pattern.compile("\\s+\\*\\s+(.*)"); List<File> files = Tool.find(this.getJavaClass().getParentFile().getParentFile(), type + ".java");
Matcher matcher = compile.matcher(s); if (files.size() == 1) {
if (matcher.find()) doc += matcher.group(1); DocEntityReader docEntityReader = new DocEntityReader(files.get(0));
ents.put(docEntityReader.getModuleName() + "#" + type, docEntityReader.getFieldDocList());
}
} else {//其他模块下查找
File path = Tool.createPath(this.getJavaClass().getParentFile().getParentFile().getParentFile(), module);
List<File> files = Tool.find(path, type + ".java");
if (files.size() == 1) {
DocEntityReader docEntityReader = new DocEntityReader(files.get(0));
ents.put(docEntityReader.getModuleName() + "#" + type, docEntityReader.getFieldDocList());
}
}
}
}
docParam.setName(matcher.group(2));
fieldDocList.add(docParam);
docParam = new DocParam();
}
}
}
} }
if (s.matches("\\s+private\\s.*\\s(.*);")) { private String nullF(String value) {
Pattern compile = Pattern.compile("\\s+private\\s.*\\s(.*);"); return value == null ? "" : value;
Matcher matcher = compile.matcher(s); }
if (matcher.find()) field = matcher.group(1);
fieldDocMap.put(field, doc != null ? doc : ""); public List<DocParam> getFieldDocList() {
return fieldDocList;
} }
public void setFieldDocList(List<DocParam> fieldDocList) {
this.fieldDocList = fieldDocList;
} }
public String getClassNote() {
return classNote;
}
public void setClassNote(String classNote) {
this.classNote = classNote;
} }
} }

@ -0,0 +1,55 @@
package xyz.wbsite.dbtool.javafx.tool;
import xyz.wbsite.dbtool.javafx.po.DocParam;
import xyz.wbsite.dbtool.web.frame.utils.MapperUtil;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DocResponseReader extends ResponseReader {
private List<DocParam> fieldDocList;
public DocResponseReader(File javaClass) {
super(javaClass);
fieldDocList = new ArrayList<>();
DocParam docParam = new DocParam();
for (String s : getBody()) {
s = s.trim();
// 提取注释
if (s.startsWith("/**") || s.endsWith("*/") || s.startsWith("*")) {
s = s.replaceAll("^/\\*\\*", "");
s = s.replaceAll("^\\*/$", "");
s = s.replaceAll("^\\*", "");
docParam.setNote(nullF(docParam.getNote()) + s.trim());
}
if (s.matches("private\\s(.*)\\s(.*);")) {
Pattern compile = Pattern.compile("private\\s(.*)\\s(.*);");
Matcher matcher = compile.matcher(s);
if (matcher.find()) {
docParam.setTupe(matcher.group(1));
docParam.setName(matcher.group(2));
fieldDocList.add(docParam);
System.out.println("===" + MapperUtil.toJson(docParam));
docParam = new DocParam();
}
}
}
}
private String nullF(String value) {
return value == null ? "" : value;
}
public List<DocParam> getFieldDocList() {
return fieldDocList;
}
public void setFieldDocList(List<DocParam> fieldDocList) {
this.fieldDocList = fieldDocList;
}
}

@ -29,6 +29,10 @@ public class RequestReader {
private String Tclass = null; private String Tclass = null;
public RequestReader(File javaClass) { public RequestReader(File javaClass) {
if (!javaClass.getName().endsWith("Request.java")) {
throw new IllegalArgumentException("not a Request");
}
this.javaClass = javaClass; this.javaClass = javaClass;
importList = new ArrayList<>(); importList = new ArrayList<>();
notesList = new ArrayList<>(); notesList = new ArrayList<>();

@ -29,6 +29,9 @@ public class ResponseReader {
private String Tclass = null; private String Tclass = null;
public ResponseReader(File javaClass) { public ResponseReader(File javaClass) {
if (!javaClass.getName().endsWith("Response.java")) {
throw new IllegalArgumentException("not a Response");
}
this.javaClass = javaClass; this.javaClass = javaClass;
importList = new ArrayList<>(); importList = new ArrayList<>();
notesList = new ArrayList<>(); notesList = new ArrayList<>();
@ -39,7 +42,7 @@ public class ResponseReader {
read(); read();
} }
private void read() { void read() {
BufferedReader bufferedReader = null; BufferedReader bufferedReader = null;
try { try {
bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(javaClass), "utf-8")); bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(javaClass), "utf-8"));

@ -1,12 +1,13 @@
{ {
"result": [ "result": [
<#list ajaxList as item>
{ {
"title": "登录", "title": "${item.title}",
"type": "ajax", "type": "ajax",
"module": "system", "module": "${item.module}",
"target": "user", "target": "${item.target}",
"method": "login", "method": "${item.method}",
"id": "ajax.system.user.login", "id": "ajax.${item.module}.${item.target}.${item.method}",
"reqParams": [ "reqParams": [
{ {
"name": "username", "name": "username",
@ -33,7 +34,10 @@
"note": "用户" "note": "用户"
} }
], ],
"entParams": [ "entList": [
{
"name": "User",
"params": [
{ {
"name": "username", "name": "username",
"type": "String", "type": "String",
@ -48,3 +52,6 @@
} }
] ]
} }
</#list>
]
}
Loading…
Cancel
Save

Powered by TurnKey Linux.