codexmlreader.java

来自「一个java 代码生成器」· Java 代码 · 共 99 行

JAVA
99
字号
package com.jenerator.regen;

/*<Imports>*/

import com.jenerator.util.XMLConnect;
import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

/*</Imports>*/

/**
 *
 *
 */
public class CodeXmlReader implements CodeReader {

    //ATTRIBUTES
    private Document doc;
    private Logger log = Logger.getLogger(com.jenerator.regen.CodeXmlReader.class.getName());

    //CONSTRUCTORS
    public CodeXmlReader(File file) throws ExtracterException {
        try {
            doc = new XMLConnect(convertJavaSourceIntoXml(file)).readXmlString();
        } catch (SAXException e) {
            throw new ExtracterException(e);
        } catch (IOException e) {
            throw new ExtracterException(e);
        } catch (ExtracterException e) {
            throw e;
        }
    }

    //METHODS
    /**
     *
     */
    private String convertJavaSourceIntoXml(File file) throws ExtracterException {
        StringBuffer buff = new StringBuffer();
        BufferedReader d = null;
        try {
            d = new BufferedReader(new FileReader(file));

            String str = "<?xml version='1.0' ?>\n<Source>\n";
            buff.append(str);
            while (str != null) {
                str = d.readLine();
                if (str != null)
                    buff.append(str + "\n");
            }

            buff.append("\n</Source>\n");

        } catch (IOException e) {
            log.fatal(e);
            throw new ExtracterException(e);

        } finally {

            try {
                d.close();
            } catch (IOException e) {
                log.fatal(e);
            }
        }

        return buff.toString();
    }


    /**     * <manual-code> Manual code which will be extracted</manual-code>     *     *     */

    public String getClassCode() throws ExtracterException {
        String codeValue = "";
        try {
            NodeList element = doc.getElementsByTagName("manual-code");
            codeValue = element.item(0).getChildNodes().item(0).getNodeValue();
            log.debug("CLASS CODE Extracter : " + codeValue);
        } catch (Exception e) {
            log.fatal("The <manual-code> element delimiters might be missing in the source code", e);
            throw new ExtracterException(e);
        }
        return codeValue;
    }


}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?