--- /dev/null
+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