]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax.base/src/org/simantics/xml/sax/base/IndentingXMLStreamWriter.java
XML Elements are exported in the original order (if order is stored during import)
[simantics/interop.git] / org.simantics.xml.sax.base / src / org / simantics / xml / sax / base / IndentingXMLStreamWriter.java
diff --git a/org.simantics.xml.sax.base/src/org/simantics/xml/sax/base/IndentingXMLStreamWriter.java b/org.simantics.xml.sax.base/src/org/simantics/xml/sax/base/IndentingXMLStreamWriter.java
new file mode 100644 (file)
index 0000000..a912564
--- /dev/null
@@ -0,0 +1,208 @@
+package org.simantics.xml.sax.base;\r
+\r
+import javax.xml.namespace.NamespaceContext;\r
+import javax.xml.stream.XMLStreamException;\r
+import javax.xml.stream.XMLStreamWriter;\r
+\r
+/**\r
+ * Rather dummy indenting XML Stream Writer.\r
+ * \r
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
+ *\r
+ */\r
+public class IndentingXMLStreamWriter implements XMLStreamWriter{\r
+       \r
+       XMLStreamWriter delegate;\r
+       int depth = 0;\r
+       \r
+       public IndentingXMLStreamWriter(XMLStreamWriter delegate) {\r
+               this.delegate = delegate;\r
+       }\r
+       \r
+       @Override\r
+       public void close() throws XMLStreamException {\r
+               delegate.close();\r
+       }\r
+       \r
+       @Override\r
+       public void flush() throws XMLStreamException {\r
+               delegate.close();\r
+       }\r
+       \r
+       @Override\r
+       public NamespaceContext getNamespaceContext() {\r
+               return delegate.getNamespaceContext();\r
+       }\r
+       \r
+       @Override\r
+       public String getPrefix(String uri) throws XMLStreamException {\r
+               return delegate.getPrefix(uri);\r
+       }\r
+       \r
+       @Override\r
+       public Object getProperty(String name) throws IllegalArgumentException {\r
+               return delegate.getProperty(name);\r
+       }\r
+       \r
+       @Override\r
+       public void setDefaultNamespace(String uri) throws XMLStreamException {\r
+               delegate.setDefaultNamespace(uri);\r
+       }\r
+       \r
+       @Override\r
+       public void setPrefix(String prefix, String uri) throws XMLStreamException {\r
+               delegate.setPrefix(prefix, uri);\r
+       }\r
+       \r
+       private String getIdent() {\r
+               String s = "";\r
+               for (int i = 0; i < depth; i++)\r
+                       s += "  ";\r
+               return s;\r
+       }\r
+\r
+       @Override\r
+       public void writeStartElement(String localName) throws XMLStreamException {\r
+               delegate.writeCharacters("\n"+getIdent());\r
+               delegate.writeStartElement(localName);\r
+               depth++;\r
+       }\r
+\r
+       @Override\r
+       public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException {\r
+               delegate.writeCharacters("\n"+getIdent());\r
+               delegate.writeStartElement(namespaceURI, localName);\r
+               depth++;\r
+       }\r
+\r
+       @Override\r
+       public void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {\r
+               delegate.writeCharacters("\n"+getIdent());\r
+               delegate.writeStartElement(prefix, localName, namespaceURI);\r
+               depth++;\r
+       }\r
+\r
+       @Override\r
+       public void writeStartDocument() throws XMLStreamException {\r
+               delegate.writeStartDocument();\r
+               depth++;\r
+       }\r
+\r
+       @Override\r
+       public void writeStartDocument(String version) throws XMLStreamException {\r
+               delegate.writeStartDocument(version);\r
+               depth++;\r
+       }\r
+\r
+       @Override\r
+       public void writeStartDocument(String encoding, String version) throws XMLStreamException {\r
+               delegate.writeStartDocument(encoding, version);\r
+               depth++;\r
+       }\r
+\r
+       @Override\r
+       public void writeEndElement() throws XMLStreamException {\r
+               depth--;\r
+               delegate.writeCharacters("\n"+getIdent());\r
+               delegate.writeEndElement();\r
+       }\r
+       \r
+       @Override\r
+       public void writeEndDocument() throws XMLStreamException {\r
+               depth--;\r
+               delegate.writeCharacters("\n"+getIdent());\r
+               delegate.writeEndDocument();\r
+       }\r
+       \r
+       @Override\r
+       public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException {\r
+               delegate.writeEmptyElement(namespaceURI, localName);\r
+       }\r
+\r
+       @Override\r
+       public void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {\r
+               delegate.writeEmptyElement(prefix, localName, namespaceURI);\r
+       }\r
+\r
+       @Override\r
+       public void writeEmptyElement(String localName) throws XMLStreamException {\r
+               delegate.writeEmptyElement(localName);\r
+       }\r
+\r
+       @Override\r
+       public void writeAttribute(String localName, String value) throws XMLStreamException {\r
+               delegate.writeAttribute( localName, value);\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void writeAttribute(String prefix, String namespaceURI, String localName, String value)\r
+                       throws XMLStreamException {\r
+               delegate.writeAttribute(prefix, namespaceURI, localName, value);\r
+       }\r
+\r
+       @Override\r
+       public void writeAttribute(String namespaceURI, String localName, String value) throws XMLStreamException {\r
+               delegate.writeAttribute(namespaceURI, localName, value);\r
+       }\r
+\r
+       @Override\r
+       public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException {\r
+               delegate.writeNamespace(prefix, namespaceURI);  \r
+       }\r
+\r
+       @Override\r
+       public void writeDefaultNamespace(String namespaceURI) throws XMLStreamException {\r
+               delegate.writeDefaultNamespace(namespaceURI);\r
+       }\r
+\r
+       @Override\r
+       public void writeComment(String data) throws XMLStreamException {\r
+               delegate.writeComment(data);\r
+               \r
+       }\r
+\r
+       @Override\r
+       public void writeProcessingInstruction(String target) throws XMLStreamException {\r
+               delegate.writeProcessingInstruction(target);\r
+       }\r
+\r
+       @Override\r
+       public void writeProcessingInstruction(String target, String data) throws XMLStreamException {\r
+               delegate.writeProcessingInstruction(target, data);\r
+       }\r
+\r
+       @Override\r
+       public void writeCData(String data) throws XMLStreamException {\r
+               delegate.writeCData(data);\r
+       }\r
+\r
+       @Override\r
+       public void writeDTD(String dtd) throws XMLStreamException {\r
+               delegate.writeDTD(dtd); \r
+       }\r
+\r
+       @Override\r
+       public void writeEntityRef(String name) throws XMLStreamException {\r
+               delegate.writeEntityRef(name);\r
+       }\r
+\r
+       \r
+\r
+       @Override\r
+       public void writeCharacters(String text) throws XMLStreamException {\r
+               delegate.writeCharacters(text);\r
+       }\r
+\r
+       @Override\r
+       public void writeCharacters(char[] text, int start, int len) throws XMLStreamException {\r
+               delegate.writeCharacters(text, start, len);\r
+       }\r
+\r
+       @Override\r
+       public void setNamespaceContext(NamespaceContext context) throws XMLStreamException {\r
+               delegate.setNamespaceContext(context);\r
+       }\r
+       \r
+\r
+}\r