|
|
|
@ -3,6 +3,7 @@ package xyz.wbsite.dbtool.javafx.manger;
|
|
|
|
|
import org.w3c.dom.Document;
|
|
|
|
|
import org.w3c.dom.Element;
|
|
|
|
|
import org.w3c.dom.NodeList;
|
|
|
|
|
import xyz.wbsite.dbtool.javafx.annotation.Property;
|
|
|
|
|
import xyz.wbsite.dbtool.javafx.enums.FieldType;
|
|
|
|
|
import xyz.wbsite.dbtool.javafx.po.Field;
|
|
|
|
|
import xyz.wbsite.dbtool.javafx.po.Module;
|
|
|
|
@ -44,31 +45,30 @@ public class XmlManager {
|
|
|
|
|
if ("project".endsWith(dbElement.getNodeName())) {
|
|
|
|
|
System.out.println("加载模型[" + xmlFile.getName() + "]");
|
|
|
|
|
|
|
|
|
|
NodeList projectName = dbElement.getElementsByTagName("projectName");
|
|
|
|
|
if (projectName.getLength() == 1) {
|
|
|
|
|
project.setProjectName(projectName.item(0).getTextContent());
|
|
|
|
|
}
|
|
|
|
|
java.lang.reflect.Field[] declaredFields = project.getClass().getDeclaredFields();
|
|
|
|
|
|
|
|
|
|
NodeList projectBasePackage = dbElement.getElementsByTagName("projectBasePackage");
|
|
|
|
|
if (projectBasePackage.getLength() == 1) {
|
|
|
|
|
project.setProjectBasePackage(projectBasePackage.item(0).getTextContent());
|
|
|
|
|
}
|
|
|
|
|
for (java.lang.reflect.Field declaredField : declaredFields) {
|
|
|
|
|
boolean annotationPresent = declaredField.isAnnotationPresent(Property.class);
|
|
|
|
|
if (annotationPresent) {
|
|
|
|
|
Property annotation = declaredField.getAnnotation(Property.class);
|
|
|
|
|
String value = annotation.value();
|
|
|
|
|
|
|
|
|
|
NodeList projectAuthor = dbElement.getElementsByTagName("projectAuthor");
|
|
|
|
|
if (projectAuthor.getLength() == 1) {
|
|
|
|
|
project.setProjectAuthor(projectAuthor.item(0).getTextContent());
|
|
|
|
|
}
|
|
|
|
|
NodeList nodeName = dbElement.getElementsByTagName(value);
|
|
|
|
|
if (nodeName.getLength() == 1) {
|
|
|
|
|
String textContent = nodeName.item(0).getTextContent();
|
|
|
|
|
|
|
|
|
|
NodeList multiDB = dbElement.getElementsByTagName("multiDB");
|
|
|
|
|
if (multiDB.getLength() == 1) {
|
|
|
|
|
project.setMultiDB(getBoolean(multiDB.item(0).getTextContent()));
|
|
|
|
|
declaredField.setAccessible(true);
|
|
|
|
|
if (declaredField.getType() == String.class) {
|
|
|
|
|
declaredField.set(project, textContent);
|
|
|
|
|
} else if (declaredField.getType() == Boolean.class || declaredField.getType() == boolean.class) {
|
|
|
|
|
declaredField.setBoolean(project, getBoolean(textContent));
|
|
|
|
|
}
|
|
|
|
|
System.out.println("读取" + value + "=" + textContent);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
NodeList sysMD = dbElement.getElementsByTagName("sysMD");
|
|
|
|
|
if (sysMD.getLength() == 1) {
|
|
|
|
|
project.setSysMD(getBoolean(sysMD.item(0).getTextContent()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NodeList modules = dbElement.getElementsByTagName("module");
|
|
|
|
|
if (modules.getLength() > 0) {
|
|
|
|
|
|
|
|
|
@ -168,21 +168,25 @@ public class XmlManager {
|
|
|
|
|
Element rootProject = doc.createElement("project");
|
|
|
|
|
doc.appendChild(rootProject);
|
|
|
|
|
|
|
|
|
|
Element projectName = doc.createElement("projectName");
|
|
|
|
|
projectName.setTextContent(project.getProjectName());
|
|
|
|
|
Element projectBasePackage = doc.createElement("projectBasePackage");
|
|
|
|
|
projectBasePackage.setTextContent(project.getProjectBasePackage());
|
|
|
|
|
Element projectAuthor = doc.createElement("projectAuthor");
|
|
|
|
|
projectAuthor.setTextContent(project.getProjectAuthor());
|
|
|
|
|
Element multiDB = doc.createElement("multiDB");
|
|
|
|
|
multiDB.setTextContent(String.valueOf(project.getMultiDB()));
|
|
|
|
|
Element sysMD = doc.createElement("sysMD");
|
|
|
|
|
sysMD.setTextContent(String.valueOf(project.getSysMD()));
|
|
|
|
|
rootProject.appendChild(projectName);
|
|
|
|
|
rootProject.appendChild(projectBasePackage);
|
|
|
|
|
rootProject.appendChild(projectAuthor);
|
|
|
|
|
rootProject.appendChild(multiDB);
|
|
|
|
|
rootProject.appendChild(sysMD);
|
|
|
|
|
java.lang.reflect.Field[] declaredFields = project.getClass().getDeclaredFields();
|
|
|
|
|
|
|
|
|
|
for (java.lang.reflect.Field declaredField : declaredFields) {
|
|
|
|
|
try {
|
|
|
|
|
boolean annotationPresent = declaredField.isAnnotationPresent(Property.class);
|
|
|
|
|
if (annotationPresent) {
|
|
|
|
|
Property annotation = declaredField.getAnnotation(Property.class);
|
|
|
|
|
String value = annotation.value();
|
|
|
|
|
Element element = doc.createElement(value);
|
|
|
|
|
declaredField.setAccessible(true);
|
|
|
|
|
Object valuer = declaredField.get(project);
|
|
|
|
|
element.setTextContent(String.valueOf(valuer));
|
|
|
|
|
rootProject.appendChild(element);
|
|
|
|
|
System.out.println("写入" + value + "=" + String.valueOf(valuer));
|
|
|
|
|
}
|
|
|
|
|
} catch (IllegalAccessException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Element modules = doc.createElement("modules");
|
|
|
|
|
rootProject.appendChild(modules);
|
|
|
|
|