]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - 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
index a912564e87b162e3daa5dfbd33af32765c19ea87..d3a6cfdc3c1a439033512fb481fd1016f913d50e 100644 (file)
@@ -14,6 +14,7 @@ public class IndentingXMLStreamWriter implements XMLStreamWriter{
        \r
        XMLStreamWriter delegate;\r
        int depth = 0;\r
+       boolean indent = true;\r
        \r
        public IndentingXMLStreamWriter(XMLStreamWriter delegate) {\r
                this.delegate = delegate;\r
@@ -55,7 +56,7 @@ public class IndentingXMLStreamWriter implements XMLStreamWriter{
        }\r
        \r
        private String getIdent() {\r
-               String s = "";\r
+               String s = "\n";\r
                for (int i = 0; i < depth; i++)\r
                        s += "  ";\r
                return s;\r
@@ -63,76 +64,91 @@ public class IndentingXMLStreamWriter implements XMLStreamWriter{
 \r
        @Override\r
        public void writeStartElement(String localName) throws XMLStreamException {\r
-               delegate.writeCharacters("\n"+getIdent());\r
+               if(indent)\r
+               delegate.writeCharacters(getIdent());\r
                delegate.writeStartElement(localName);\r
                depth++;\r
+               indent = true;\r
        }\r
 \r
        @Override\r
        public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException {\r
-               delegate.writeCharacters("\n"+getIdent());\r
+               if (indent)\r
+               delegate.writeCharacters(getIdent());\r
                delegate.writeStartElement(namespaceURI, localName);\r
                depth++;\r
+               indent = true;\r
        }\r
 \r
        @Override\r
        public void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {\r
-               delegate.writeCharacters("\n"+getIdent());\r
+               if (indent)\r
+               delegate.writeCharacters(getIdent());\r
                delegate.writeStartElement(prefix, localName, namespaceURI);\r
                depth++;\r
+               indent = true;\r
        }\r
 \r
        @Override\r
        public void writeStartDocument() throws XMLStreamException {\r
                delegate.writeStartDocument();\r
                depth++;\r
+               indent = true;\r
        }\r
 \r
        @Override\r
        public void writeStartDocument(String version) throws XMLStreamException {\r
                delegate.writeStartDocument(version);\r
                depth++;\r
+               indent = true;\r
        }\r
 \r
        @Override\r
        public void writeStartDocument(String encoding, String version) throws XMLStreamException {\r
                delegate.writeStartDocument(encoding, version);\r
                depth++;\r
+               indent = true;\r
        }\r
 \r
        @Override\r
        public void writeEndElement() throws XMLStreamException {\r
                depth--;\r
-               delegate.writeCharacters("\n"+getIdent());\r
+               if(indent)\r
+               delegate.writeCharacters(getIdent());\r
                delegate.writeEndElement();\r
+               indent = true;\r
        }\r
        \r
        @Override\r
        public void writeEndDocument() throws XMLStreamException {\r
                depth--;\r
-               delegate.writeCharacters("\n"+getIdent());\r
+               if (indent)\r
+               delegate.writeCharacters(getIdent());\r
                delegate.writeEndDocument();\r
+               indent = true;\r
        }\r
        \r
        @Override\r
        public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException {\r
                delegate.writeEmptyElement(namespaceURI, localName);\r
+               indent = true;\r
        }\r
 \r
        @Override\r
        public void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {\r
                delegate.writeEmptyElement(prefix, localName, namespaceURI);\r
+               indent = true;\r
        }\r
 \r
        @Override\r
        public void writeEmptyElement(String localName) throws XMLStreamException {\r
                delegate.writeEmptyElement(localName);\r
+               indent = true;\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
@@ -158,8 +174,7 @@ public class IndentingXMLStreamWriter implements XMLStreamWriter{
 \r
        @Override\r
        public void writeComment(String data) throws XMLStreamException {\r
-               delegate.writeComment(data);\r
-               \r
+               delegate.writeComment(data);    \r
        }\r
 \r
        @Override\r
@@ -192,11 +207,13 @@ public class IndentingXMLStreamWriter implements XMLStreamWriter{
        @Override\r
        public void writeCharacters(String text) throws XMLStreamException {\r
                delegate.writeCharacters(text);\r
+               indent=false;\r
        }\r
 \r
        @Override\r
        public void writeCharacters(char[] text, int start, int len) throws XMLStreamException {\r
                delegate.writeCharacters(text, start, len);\r
+               indent=false;\r
        }\r
 \r
        @Override\r