]> git.sur5r.net Git - openocd/blob - src/server/httpd/Stylizer.java
3b8bee3ea50ef0721aa0f9f3ec40ab72d29407d9
[openocd] / src / server / httpd / Stylizer.java
1 import java.io.File;\r
2 import java.io.FileOutputStream;\r
3 import java.io.IOException;\r
4 import java.io.OutputStream;\r
5 \r
6 import javax.xml.parsers.DocumentBuilder;\r
7 import javax.xml.parsers.DocumentBuilderFactory;\r
8 import javax.xml.parsers.ParserConfigurationException;\r
9 import javax.xml.transform.Transformer;\r
10 import javax.xml.transform.TransformerConfigurationException;\r
11 import javax.xml.transform.TransformerException;\r
12 import javax.xml.transform.TransformerFactory;\r
13 import javax.xml.transform.dom.DOMSource;\r
14 import javax.xml.transform.stream.StreamResult;\r
15 import javax.xml.transform.stream.StreamSource;\r
16 \r
17 import org.apache.xpath.XPathAPI;\r
18 import org.w3c.dom.Document;\r
19 import org.w3c.dom.Node;\r
20 import org.w3c.dom.NodeList;\r
21 import org.xml.sax.SAXException;\r
22 \r
23 /** used to generate .tcl files from */\r
24 public class Stylizer\r
25 {\r
26         // Global value so it can be ref'd by the tree-adapter\r
27         static Document document;\r
28         public static void main(String argv[])\r
29         {\r
30                 if (argv.length != 3)\r
31                 {\r
32                         System.err.println("Usage: java Stylizer stylesheet xmlfile outputdir");\r
33                         System.exit(1);\r
34                 }\r
35                 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\r
36                 try\r
37                 {\r
38                         System.err.println("Starting conversion...");\r
39                         \r
40                         File stylesheet = new File(argv[0]);\r
41                         File datafile = new File(argv[1]);\r
42                         DocumentBuilder builder = factory.newDocumentBuilder();\r
43                         document = builder.parse(datafile);\r
44                         \r
45                         NodeList list = XPathAPI.selectNodeList(document, "website/language/page");\r
46 \r
47                         for (int i=0; i<list.getLength(); i++)\r
48                         {\r
49                                 Node node=list.item(i);\r
50                                 \r
51                                 // Use a Transformer for output\r
52                                 TransformerFactory tFactory = TransformerFactory.newInstance();\r
53                                 StreamSource stylesource = new StreamSource(stylesheet);\r
54                                 Transformer transformer = tFactory.newTransformer(stylesource);\r
55                                 \r
56                                 Node fileName = XPathAPI.selectSingleNode(node, "outfile/text()");\r
57                                 \r
58                                 System.err.println("Converting " + fileName.getNodeValue());\r
59                                 DOMSource source = new DOMSource(document);\r
60                                 \r
61                                 OutputStream output=new FileOutputStream(new File(argv[2], fileName.getNodeValue()));\r
62                                 \r
63                                 \r
64                                 try\r
65                                 {\r
66                                         StreamResult result = new StreamResult(output);\r
67                                         \r
68                                         transformer.setParameter("pagetogenerate", fileName.getNodeValue());\r
69                                         transformer.transform(source, result);\r
70                                 } \r
71                                 finally\r
72                                 {\r
73                                         output.close();\r
74                                 }\r
75                         }\r
76                 } catch (TransformerConfigurationException tce)\r
77                 {\r
78                         // Error generated by the parser\r
79                         System.out.println("\n** Transformer Factory error");\r
80                         System.out.println("   " + tce.getMessage());\r
81                         // Use the contained exception, if any\r
82                         Throwable x = tce;\r
83                         if (tce.getException() != null)\r
84                                 x = tce.getException();\r
85                         x.printStackTrace();\r
86                 } catch (TransformerException te)\r
87                 {\r
88                         // Error generated by the parser\r
89                         System.out.println("\n** Transformation error");\r
90                         System.out.println("   " + te.getMessage());\r
91                         // Use the contained exception, if any\r
92                         Throwable x = te;\r
93                         if (te.getException() != null)\r
94                                 x = te.getException();\r
95                         x.printStackTrace();\r
96                 } catch (SAXException sxe)\r
97                 {\r
98                         // Error generated by this application\r
99                         // (or a parser-initialization error)\r
100                         Exception x = sxe;\r
101                         if (sxe.getException() != null)\r
102                                 x = sxe.getException();\r
103                         x.printStackTrace();\r
104                 } catch (ParserConfigurationException pce)\r
105                 {\r
106                         // Parser with specified options can't be built\r
107                         pce.printStackTrace();\r
108                 } catch (IOException ioe)\r
109                 {\r
110                         // I/O error\r
111                         ioe.printStackTrace();\r
112                 }\r
113         } // main\r
114 }\r