X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.xml.sax.base%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2Fbase%2FIndentingXMLStreamWriter.java;h=d3a6cfdc3c1a439033512fb481fd1016f913d50e;hb=268cc26d9b8c79c4a30b746bf22e1bde9e179e00;hp=a912564e87b162e3daa5dfbd33af32765c19ea87;hpb=28cdb08c2dcc6b306d8a0cbea8c0bd791e42d583;p=simantics%2Finterop.git 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 index a912564..d3a6cfd 100644 --- 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 @@ -14,6 +14,7 @@ public class IndentingXMLStreamWriter implements XMLStreamWriter{ XMLStreamWriter delegate; int depth = 0; + boolean indent = true; public IndentingXMLStreamWriter(XMLStreamWriter delegate) { this.delegate = delegate; @@ -55,7 +56,7 @@ public class IndentingXMLStreamWriter implements XMLStreamWriter{ } private String getIdent() { - String s = ""; + String s = "\n"; for (int i = 0; i < depth; i++) s += " "; return s; @@ -63,76 +64,91 @@ public class IndentingXMLStreamWriter implements XMLStreamWriter{ @Override public void writeStartElement(String localName) throws XMLStreamException { - delegate.writeCharacters("\n"+getIdent()); + if(indent) + delegate.writeCharacters(getIdent()); delegate.writeStartElement(localName); depth++; + indent = true; } @Override public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException { - delegate.writeCharacters("\n"+getIdent()); + if (indent) + delegate.writeCharacters(getIdent()); delegate.writeStartElement(namespaceURI, localName); depth++; + indent = true; } @Override public void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException { - delegate.writeCharacters("\n"+getIdent()); + if (indent) + delegate.writeCharacters(getIdent()); delegate.writeStartElement(prefix, localName, namespaceURI); depth++; + indent = true; } @Override public void writeStartDocument() throws XMLStreamException { delegate.writeStartDocument(); depth++; + indent = true; } @Override public void writeStartDocument(String version) throws XMLStreamException { delegate.writeStartDocument(version); depth++; + indent = true; } @Override public void writeStartDocument(String encoding, String version) throws XMLStreamException { delegate.writeStartDocument(encoding, version); depth++; + indent = true; } @Override public void writeEndElement() throws XMLStreamException { depth--; - delegate.writeCharacters("\n"+getIdent()); + if(indent) + delegate.writeCharacters(getIdent()); delegate.writeEndElement(); + indent = true; } @Override public void writeEndDocument() throws XMLStreamException { depth--; - delegate.writeCharacters("\n"+getIdent()); + if (indent) + delegate.writeCharacters(getIdent()); delegate.writeEndDocument(); + indent = true; } @Override public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException { delegate.writeEmptyElement(namespaceURI, localName); + indent = true; } @Override public void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException { delegate.writeEmptyElement(prefix, localName, namespaceURI); + indent = true; } @Override public void writeEmptyElement(String localName) throws XMLStreamException { delegate.writeEmptyElement(localName); + indent = true; } @Override public void writeAttribute(String localName, String value) throws XMLStreamException { delegate.writeAttribute( localName, value); - } @Override @@ -158,8 +174,7 @@ public class IndentingXMLStreamWriter implements XMLStreamWriter{ @Override public void writeComment(String data) throws XMLStreamException { - delegate.writeComment(data); - + delegate.writeComment(data); } @Override @@ -192,11 +207,13 @@ public class IndentingXMLStreamWriter implements XMLStreamWriter{ @Override public void writeCharacters(String text) throws XMLStreamException { delegate.writeCharacters(text); + indent=false; } @Override public void writeCharacters(char[] text, int start, int len) throws XMLStreamException { delegate.writeCharacters(text, start, len); + indent=false; } @Override