List of usage examples for org.eclipse.jdt.internal.compiler.util GenericXMLWriter endTag
public void endTag(String name, boolean insertTab, boolean insertNewLine)
From source file:io.sarl.eclipse.util.JavaClasspathParser.java
License:Apache License
@SuppressWarnings({ "checkstyle:innerassignment", "checkstyle:illegaltype" })
private static void decodeUnknownNode(Node node, GenericXMLWriter xmlWriter, boolean insertNewLine) {
switch (node.getNodeType()) {
case Node.ELEMENT_NODE:
final NamedNodeMap attributes;
HashMap<String, String> parameters = null;
if ((attributes = node.getAttributes()) != null) {
final int length = attributes.getLength();
if (length > 0) {
parameters = new HashMap<>();
for (int i = 0; i < length; i++) {
final Node attribute = attributes.item(i);
parameters.put(attribute.getNodeName(), attribute.getNodeValue());
}// w w w . jav a 2 s . c om
}
}
final NodeList children = node.getChildNodes();
final int childrenLength = children.getLength();
final String nodeName = node.getNodeName();
xmlWriter.printTag(nodeName, parameters, false/* don't insert tab */, false/* don't insert new line */,
childrenLength == 0/* close tag if no children */);
if (childrenLength > 0) {
for (int i = 0; i < childrenLength; i++) {
decodeUnknownNode(children.item(i), xmlWriter, false/* don't insert new line */);
}
xmlWriter.endTag(nodeName, false/* don't insert tab */, insertNewLine);
}
break;
case Node.TEXT_NODE:
final String data = ((Text) node).getData();
xmlWriter.printString(data, false/* don't insert tab */, false/* don't insert new line */);
break;
default:
break;
}
}