package xyz.wbsite.dbtool.javafx.tool; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; 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 importList; private List notesList; private Set deptReqList; private Set deptEntList; private String className; private String fatherName; private List 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 getNotesList() { return notesList; } public void setNotesList(List notesList) { this.notesList = notesList; } public List getImportList() { return importList; } public void setImportList(List 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 getBody() { return body; } public void setBody(List 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 getDeptReqList() { return deptReqList; } public void setDeptReqList(Set deptReqList) { this.deptReqList = deptReqList; } public Set getDeptEntList() { return deptEntList; } public void setDeptEntList(Set 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(); } }