1 package org.testng.xml; 2 3 import java.util.List; 4 5 import org.testng.collections.Lists; 6 import org.testng.reporters.XMLStringBuffer; 7 import org.testng.xml.dom.Tag; 8 9 import static org.testng.collections.CollectionUtils.hasElements; 10 11 public class XmlGroups { 12 13 private List<XmlDefine> m_defines = Lists.newArrayList(); 14 private XmlRun m_run; 15 private List<XmlDependencies> m_dependencies = Lists.newArrayList(); 16 getDefines()17 public List<XmlDefine> getDefines() { 18 return m_defines; 19 } 20 21 @Tag(name = "define") addDefine(XmlDefine define)22 public void addDefine(XmlDefine define) { 23 getDefines().add(define); 24 } 25 setDefines(List<XmlDefine> defines)26 public void setDefines(List<XmlDefine> defines) { 27 m_defines = defines; 28 } 29 getRun()30 public XmlRun getRun() { 31 return m_run; 32 } 33 setRun(XmlRun run)34 public void setRun(XmlRun run) { 35 m_run = run; 36 } 37 getDependencies()38 public List<XmlDependencies> getDependencies() { 39 return m_dependencies; 40 } 41 42 // public void setDependencies(List<XmlDependencies> dependencies) { 43 // m_dependencies = dependencies; 44 // } 45 46 @Tag(name = "dependencies") setXmlDependencies(XmlDependencies dependencies)47 public void setXmlDependencies(XmlDependencies dependencies) { 48 m_dependencies.add(dependencies); 49 } 50 toXml(String indent)51 public String toXml(String indent) { 52 XMLStringBuffer xsb = new XMLStringBuffer(indent); 53 String indent2 = indent + " "; 54 55 boolean hasGroups = hasElements(m_defines) || m_run != null 56 || hasElements(m_dependencies); 57 58 if (hasGroups) { 59 xsb.push("groups"); 60 } 61 62 for (XmlDefine d : m_defines) { 63 xsb.getStringBuffer().append(d.toXml(indent2)); 64 } 65 66 xsb.getStringBuffer().append(m_run.toXml(indent2)); 67 68 for (XmlDependencies d : m_dependencies) { 69 xsb.getStringBuffer().append(d.toXml(indent2)); 70 } 71 72 if (hasGroups) { 73 xsb.pop("groups"); 74 } 75 76 return xsb.toXML(); 77 } 78 } 79