You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

233 lines
6.6 KiB

package xyz.wbsite.dbtool.javafx.tool;
import java.io.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EntityReader {
private File javaClass;
private String domainName;
private String moduleName;
private List<String> importList;
private List<String> notesList;
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 EntityReader(File javaClass) {
this.javaClass = javaClass;
importList = new ArrayList<>();
notesList = new ArrayList<>();
deptReqList = new HashSet<>();
deptEntList = new HashSet<>();
body = new ArrayList<>();
domainName = "";
read();
}
private void read() {
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(javaClass), "utf-8"));
String line = null;
while ((line = bufferedReader.readLine()) != null) {
if (line.matches("\\s*package\\s(.*);")) {
Pattern compile = Pattern.compile("\\s*package\\s(.*)\\.module\\.(.*).ent;");
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("frame")) {
} else if (line.contains("javax.validation")) {
} else if (line.contains("org.hibernate.validator")) {
} else {
importList.add(line);
}
continue;
}
if ((line.contains("/**") || line.contains("*") || line.contains("*/")) && body.size() == 0) {
notesList.add(line);
}
if (line.matches("public class\\s+(.*)\\s+extends\\s+BaseEntity\\s*\\{")) {
Pattern compile = Pattern.compile("public class\\s+(.*)\\s+extends\\s+BaseEntity\\s*\\{");
Matcher matcher = compile.matcher(line);
if (matcher.find()) {
className = matcher.group(1);
fatherName = "BaseEntity";
}
continue;
}
if (className != null) {
if (line.contains("@ColumnName") ||
line.contains("@ColumnDescription")
) {
continue;
}
body.add(line);
}
}
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);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
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> getNotesList() {
return notesList;
}
public void setNotesList(List<String> notesList) {
this.notesList = notesList;
}
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 {
EntityReader javaClassReader = new EntityReader(new File("D:\\wangbing\\Project\\dbtool\\target\\project\\EXAMPLE-WEB\\src\\main\\java\\com\\example\\module\\system\\rsp\\DictFindResponse.java"));
System.out.println();
}
}

Powered by TurnKey Linux.