]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.xml.sax.base/src/org/simantics/xml/sax/base/IndentingXMLStreamWriter.java
Handling ComplexTypes inheriting AtomicType
[simantics/interop.git] / org.simantics.xml.sax.base / src / org / simantics / xml / sax / base / IndentingXMLStreamWriter.java
1 package org.simantics.xml.sax.base;\r
2 \r
3 import javax.xml.namespace.NamespaceContext;\r
4 import javax.xml.stream.XMLStreamException;\r
5 import javax.xml.stream.XMLStreamWriter;\r
6 \r
7 /**\r
8  * Rather dummy indenting XML Stream Writer.\r
9  * \r
10  * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
11  *\r
12  */\r
13 public class IndentingXMLStreamWriter implements XMLStreamWriter{\r
14         \r
15         XMLStreamWriter delegate;\r
16         int depth = 0;\r
17         boolean indent = true;\r
18         \r
19         public IndentingXMLStreamWriter(XMLStreamWriter delegate) {\r
20                 this.delegate = delegate;\r
21         }\r
22         \r
23         @Override\r
24         public void close() throws XMLStreamException {\r
25                 delegate.close();\r
26         }\r
27         \r
28         @Override\r
29         public void flush() throws XMLStreamException {\r
30                 delegate.close();\r
31         }\r
32         \r
33         @Override\r
34         public NamespaceContext getNamespaceContext() {\r
35                 return delegate.getNamespaceContext();\r
36         }\r
37         \r
38         @Override\r
39         public String getPrefix(String uri) throws XMLStreamException {\r
40                 return delegate.getPrefix(uri);\r
41         }\r
42         \r
43         @Override\r
44         public Object getProperty(String name) throws IllegalArgumentException {\r
45                 return delegate.getProperty(name);\r
46         }\r
47         \r
48         @Override\r
49         public void setDefaultNamespace(String uri) throws XMLStreamException {\r
50                 delegate.setDefaultNamespace(uri);\r
51         }\r
52         \r
53         @Override\r
54         public void setPrefix(String prefix, String uri) throws XMLStreamException {\r
55                 delegate.setPrefix(prefix, uri);\r
56         }\r
57         \r
58         private String getIdent() {\r
59                 String s = "\n";\r
60                 for (int i = 0; i < depth; i++)\r
61                         s += "  ";\r
62                 return s;\r
63         }\r
64 \r
65         @Override\r
66         public void writeStartElement(String localName) throws XMLStreamException {\r
67                 if(indent)\r
68                 delegate.writeCharacters(getIdent());\r
69                 delegate.writeStartElement(localName);\r
70                 depth++;\r
71                 indent = true;\r
72         }\r
73 \r
74         @Override\r
75         public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException {\r
76                 if (indent)\r
77                 delegate.writeCharacters(getIdent());\r
78                 delegate.writeStartElement(namespaceURI, localName);\r
79                 depth++;\r
80                 indent = true;\r
81         }\r
82 \r
83         @Override\r
84         public void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {\r
85                 if (indent)\r
86                 delegate.writeCharacters(getIdent());\r
87                 delegate.writeStartElement(prefix, localName, namespaceURI);\r
88                 depth++;\r
89                 indent = true;\r
90         }\r
91 \r
92         @Override\r
93         public void writeStartDocument() throws XMLStreamException {\r
94                 delegate.writeStartDocument();\r
95                 depth++;\r
96                 indent = true;\r
97         }\r
98 \r
99         @Override\r
100         public void writeStartDocument(String version) throws XMLStreamException {\r
101                 delegate.writeStartDocument(version);\r
102                 depth++;\r
103                 indent = true;\r
104         }\r
105 \r
106         @Override\r
107         public void writeStartDocument(String encoding, String version) throws XMLStreamException {\r
108                 delegate.writeStartDocument(encoding, version);\r
109                 depth++;\r
110                 indent = true;\r
111         }\r
112 \r
113         @Override\r
114         public void writeEndElement() throws XMLStreamException {\r
115                 depth--;\r
116                 if(indent)\r
117                 delegate.writeCharacters(getIdent());\r
118                 delegate.writeEndElement();\r
119                 indent = true;\r
120         }\r
121         \r
122         @Override\r
123         public void writeEndDocument() throws XMLStreamException {\r
124                 depth--;\r
125                 if (indent)\r
126                 delegate.writeCharacters(getIdent());\r
127                 delegate.writeEndDocument();\r
128                 indent = true;\r
129         }\r
130         \r
131         @Override\r
132         public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException {\r
133                 delegate.writeEmptyElement(namespaceURI, localName);\r
134                 indent = true;\r
135         }\r
136 \r
137         @Override\r
138         public void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {\r
139                 delegate.writeEmptyElement(prefix, localName, namespaceURI);\r
140                 indent = true;\r
141         }\r
142 \r
143         @Override\r
144         public void writeEmptyElement(String localName) throws XMLStreamException {\r
145                 delegate.writeEmptyElement(localName);\r
146                 indent = true;\r
147         }\r
148 \r
149         @Override\r
150         public void writeAttribute(String localName, String value) throws XMLStreamException {\r
151                 delegate.writeAttribute( localName, value);\r
152         }\r
153 \r
154         @Override\r
155         public void writeAttribute(String prefix, String namespaceURI, String localName, String value)\r
156                         throws XMLStreamException {\r
157                 delegate.writeAttribute(prefix, namespaceURI, localName, value);\r
158         }\r
159 \r
160         @Override\r
161         public void writeAttribute(String namespaceURI, String localName, String value) throws XMLStreamException {\r
162                 delegate.writeAttribute(namespaceURI, localName, value);\r
163         }\r
164 \r
165         @Override\r
166         public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException {\r
167                 delegate.writeNamespace(prefix, namespaceURI);  \r
168         }\r
169 \r
170         @Override\r
171         public void writeDefaultNamespace(String namespaceURI) throws XMLStreamException {\r
172                 delegate.writeDefaultNamespace(namespaceURI);\r
173         }\r
174 \r
175         @Override\r
176         public void writeComment(String data) throws XMLStreamException {\r
177                 delegate.writeComment(data);    \r
178         }\r
179 \r
180         @Override\r
181         public void writeProcessingInstruction(String target) throws XMLStreamException {\r
182                 delegate.writeProcessingInstruction(target);\r
183         }\r
184 \r
185         @Override\r
186         public void writeProcessingInstruction(String target, String data) throws XMLStreamException {\r
187                 delegate.writeProcessingInstruction(target, data);\r
188         }\r
189 \r
190         @Override\r
191         public void writeCData(String data) throws XMLStreamException {\r
192                 delegate.writeCData(data);\r
193         }\r
194 \r
195         @Override\r
196         public void writeDTD(String dtd) throws XMLStreamException {\r
197                 delegate.writeDTD(dtd); \r
198         }\r
199 \r
200         @Override\r
201         public void writeEntityRef(String name) throws XMLStreamException {\r
202                 delegate.writeEntityRef(name);\r
203         }\r
204 \r
205         \r
206 \r
207         @Override\r
208         public void writeCharacters(String text) throws XMLStreamException {\r
209                 delegate.writeCharacters(text);\r
210                 indent=false;\r
211         }\r
212 \r
213         @Override\r
214         public void writeCharacters(char[] text, int start, int len) throws XMLStreamException {\r
215                 delegate.writeCharacters(text, start, len);\r
216                 indent=false;\r
217         }\r
218 \r
219         @Override\r
220         public void setNamespaceContext(NamespaceContext context) throws XMLStreamException {\r
221                 delegate.setNamespaceContext(context);\r
222         }\r
223         \r
224 \r
225 }\r