nodesgenerator.java

来自「Jamon是一个Java文本模板引擎」· Java 代码 · 共 78 行

JAVA
78
字号
package org.jamon.nodegen;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.LineNumberReader;import java.io.PrintWriter;import java.io.Reader;import java.util.HashMap;import java.util.Map;public class NodesGenerator{    private NodesGenerator() {}    private static Iterable<NodeDescriptor> parseNodes(        Reader p_nodesDescriptor) throws IOException    {        LineNumberReader reader = new LineNumberReader(p_nodesDescriptor);        String line;        Map<String, NodeDescriptor> nodes =             new HashMap<String, NodeDescriptor>();        while ((line = reader.readLine()) != null)        {            line.trim();            if (!line.startsWith("#") && line.length() > 0)            {                NodeDescriptor node = new NodeDescriptor(line, nodes);                 nodes.put(node.getName(), node);            }        }        return nodes.values();    }        private static void initializeDir(File p_srcDir)    {        p_srcDir.mkdirs();        File[] files = p_srcDir.listFiles();        for (int i = 0; i < files.length; i++)        {            files[i].delete();        }    }    /**     * Generate Node source files     * @param args The first argument is the node descriptor file.     *              The second argument is the directory to put generated      *              files in.      **/    public static void main(String[] args) throws IOException    {        Iterable<NodeDescriptor> nodes =            parseNodes(new FileReader(new File(args[0])));        File srcDir =            new File(                new File(new File(new File(args[1]), "org"), "jamon"),                "node");        initializeDir(srcDir);        NodeGenerator.generateSources(nodes, srcDir);        AnalysisGenerator.generateAnalysisInterface(            new PrintWriter(new FileWriter(new File(srcDir, "Analysis.java"))),            nodes);        AnalysisGenerator.generateAnalysisAdapterClass(            new PrintWriter(new FileWriter(                new File(srcDir, "AnalysisAdapter.java"))),            nodes);        AnalysisGenerator.generateDepthFirstAdapterClass(            new PrintWriter(                new FileWriter(new File(srcDir,                                         "DepthFirstAnalysisAdapter.java"))),                nodes);    }}

⌨️ 快捷键说明

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