1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.internal.xml;
20
21 import org.apache.maven.api.xml.XmlNode;
22 import org.codehaus.plexus.configuration.DefaultPlexusConfiguration;
23 import org.codehaus.plexus.configuration.PlexusConfiguration;
24
25 public class XmlPlexusConfiguration extends DefaultPlexusConfiguration {
26 public static PlexusConfiguration toPlexusConfiguration(XmlNode node) {
27 return new XmlPlexusConfiguration(node);
28 }
29
30 public XmlPlexusConfiguration(XmlNode node) {
31 super(node.getName(), node.getValue());
32 node.getAttributes().forEach(this::setAttribute);
33 node.getChildren().forEach(c -> this.addChild(new XmlPlexusConfiguration(c)));
34 }
35
36 @Override
37 public String toString() {
38 final StringBuilder buf = new StringBuilder().append('<').append(getName());
39 for (final String a : getAttributeNames()) {
40 buf.append(' ').append(a).append("=\"").append(getAttribute(a)).append('"');
41 }
42 if (getChildCount() > 0) {
43 buf.append('>');
44 for (int i = 0, size = getChildCount(); i < size; i++) {
45 buf.append(getChild(i));
46 }
47 buf.append("</").append(getName()).append('>');
48 } else if (null != getValue()) {
49 buf.append('>').append(getValue()).append("</").append(getName()).append('>');
50 } else {
51 buf.append("/>");
52 }
53 return buf.append('\n').toString();
54 }
55 }