1package org.testng.xml;
2
3import static org.testng.collections.CollectionUtils.hasElements;
4
5import org.testng.collections.Lists;
6import org.testng.reporters.XMLStringBuffer;
7import org.testng.xml.dom.OnElement;
8
9import java.util.List;
10
11public class XmlDefine {
12
13  private String m_name;
14
15  public void setName(String name) {
16    m_name = name;
17  }
18
19  public String getName() {
20    return m_name;
21  }
22
23  public String toXml(String indent) {
24    XMLStringBuffer xsb = new XMLStringBuffer(indent);
25    boolean hasElements = hasElements(m_includes);
26    if (hasElements) {
27      xsb.push("define", "name", m_name);
28    }
29    for (String s : m_includes) {
30      xsb.addEmptyElement("include", "name", s);
31    }
32    if (hasElements) {
33      xsb.pop("define");
34    }
35
36    return xsb.toXML();
37  }
38
39  private List<String> m_includes = Lists.newArrayList();
40
41  @OnElement(tag = "include", attributes = "name")
42  public void onElement(String name) {
43    m_includes.add(name);
44  }
45
46  public List<String> getIncludes() {
47    return m_includes;
48  }
49}
50