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