admin
2024-07-25 47e3087067abd35e6337c011f96d2338c0bb1aae
src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java
@@ -3,11 +3,11 @@
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import org.yeshi.utils.generater.GeneraterManagerV2;
import org.yeshi.utils.generater.annotation.admin.DaoQueryCondition;
import org.yeshi.utils.generater.annotation.admin.Show;
import org.yeshi.utils.generater.annotation.admin.form.Text;
import org.yeshi.utils.generater.entity.ClassInfo;
import org.yeshi.utils.generater.entity.admin.FormVerifyType;
import org.yeshi.utils.generater.vo.xmlconfig.admin.*;
import org.yeshi.utils.generater.vo.xmlconfig.admin.form.*;
@@ -21,8 +21,9 @@
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -36,7 +37,7 @@
 */
public class XmlConfigParseUtil {
    public static GenertorConfig parse(InputStream inputStream) throws IOException, ParserConfigurationException, SAXException, ClassNotFoundException {
    public static GenertorConfig parse(InputStream inputStream, ClassLoader classLoader) throws Exception {
        if (inputStream == null) {
            throw new FileNotFoundException();
        }
@@ -45,9 +46,12 @@
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document root = builder.parse(inputStream);
        NodeList nodelist = root.getElementsByTagName("generator-config");
        if (nodelist.getLength() == 0) {
            throw new Exception("xml格式错误");
        }
        Node rootNode = nodelist.item(0);
        String clazz = rootNode.getAttributes().getNamedItem("class").getNodeValue();
        genertorConfig.setEntity(Class.forName(clazz));
        genertorConfig.setEntity(classLoader.loadClass(clazz));
        nodelist = rootNode.getChildNodes();
        for (int i = 0; i < nodelist.getLength(); i++) {
@@ -66,8 +70,6 @@
                    genertorConfig.setAdmin(parseAdmin(node));
                }
                break;
            }
@@ -108,12 +110,17 @@
        data.setImplPackage(getNodeAttributeValue(node, "implPackage"));
        data.setQueryPackage(getNodeAttributeValue(node, "queryPackage"));
        NodeList nodeList = node.getChildNodes();
        for (int i = 0; i < nodeList.getLength(); i++) {
            if (nodeList.item(i).getNodeName().equalsIgnoreCase("exception")) {
                ExceptionData exceptionData = new ExceptionData();
                exceptionData.setPkg(getNodeAttributeValue(nodeList.item(i), "package"));
                exceptionData.setName(getNodeAttributeValue(nodeList.item(i), "name"));
                String base = getNodeAttributeValue(nodeList.item(i), "base");
                if (base != null) {
                    exceptionData.setBase(new ClassInfo(base.split("\\.")[base.split("\\.").length - 1], base));
                }
                data.setException(exceptionData);
                break;
            }
@@ -201,6 +208,7 @@
                    adminControllerData.setMapping(getNodeAttributeValue(node1, "mapping"));
                    adminControllerData.setName(getNodeAttributeValue(node1, "name"));
                    adminControllerData.setPkg(getNodeAttributeValue(node1, "package"));
                    adminControllerData.setAdminVOPackage(getNodeAttributeValue(node1, "adminVOPackage"));
                    adminControllerData.setResponseBody(Boolean.parseBoolean(getNodeAttributeValue(node1, "responseBody")));
                    adminData.setController(adminControllerData);
                }
@@ -415,7 +423,7 @@
    public static void main(String[] args) throws Exception {
        GenertorConfig config = XmlConfigParseUtil.parse(new FileInputStream("D:\\workspace\\server\\utils\\src\\test\\test.xml"));
        GenertorConfig config = XmlConfigParseUtil.parse(new FileInputStream("D:\\workspace\\server\\utils\\src\\test\\test.xml"), null);
        GeneraterManagerV2.getInstance().init("D:\\workspace\\server\\utils\\src\\test\\java", config);
        GeneraterManagerV2.getInstance().createWholeFunction();
        System.out.println(config);