1package org.testng.xml;
2
3import java.util.Map;
4
5import org.testng.collections.Maps;
6import org.testng.reporters.XMLStringBuffer;
7import org.testng.xml.dom.OnElement;
8
9import static org.testng.collections.CollectionUtils.hasElements;
10
11public class XmlDependencies {
12
13  private Map<String, String> m_xmlDependencyGroups = Maps.newHashMap();
14
15  @OnElement(tag = "group", attributes = { "name", "depends-on" })
16  public void onGroup(String name, String dependsOn) {
17    m_xmlDependencyGroups.put(name, dependsOn);
18  }
19
20  public Map<String, String> getDependencies() {
21    return m_xmlDependencyGroups;
22  }
23
24  public String toXml(String indent) {
25    XMLStringBuffer xsb = new XMLStringBuffer(indent);
26    boolean hasElements = hasElements(m_xmlDependencyGroups);
27    if (hasElements) {
28      xsb.push("dependencies");
29    }
30    for (Map.Entry<String, String> entry : m_xmlDependencyGroups.entrySet()) {
31      xsb.addEmptyElement("include", "name", entry.getKey(), "depends-on", entry.getValue());
32    }
33    if (hasElements) {
34      xsb.pop("dependencies");
35    }
36
37    return xsb.toXML();
38  }
39
40}
41