All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.testng.xml.XmlGroups Maven / Gradle / Ivy

There is a newer version: 7.10.1
Show newest version
package org.testng.xml;

import org.testng.collections.Lists;
import org.testng.reporters.XMLStringBuffer;
import org.testng.xml.dom.Tag;

import java.util.List;

import static org.testng.collections.CollectionUtils.hasElements;

public class XmlGroups {

  private List m_defines = Lists.newArrayList();
  private XmlRun m_run;
  private List m_dependencies = Lists.newArrayList();

  public List getDefines() {
    return m_defines;
  }

  @Tag(name = "define")
  public void addDefine(XmlDefine define) {
    getDefines().add(define);
  }

  public void setDefines(List defines) {
    m_defines = defines;
  }

  public XmlRun getRun() {
    return m_run;
  }

  public void setRun(XmlRun run) {
    m_run = run;
  }

  public List getDependencies() {
    return m_dependencies;
  }

//  public void setDependencies(List dependencies) {
//    m_dependencies = dependencies;
//  }

  @Tag(name = "dependencies")
  public void setXmlDependencies(XmlDependencies dependencies) {
    m_dependencies.add(dependencies);
  }

  public String toXml(String indent) {
    XMLStringBuffer xsb = new XMLStringBuffer(indent);
    String indent2 = indent + "  ";

    boolean hasGroups = hasElements(m_defines) || m_run != null
        || hasElements(m_dependencies);

    if (hasGroups) {
      xsb.push("groups");
    }

    for (XmlDefine d : m_defines) {
      xsb.getStringBuffer().append(d.toXml(indent2));
    }

      if (null != m_run) {
          //XmlRun is optional and is not always available. So check if its available before running toXml()
          xsb.getStringBuffer().append(m_run.toXml(indent2));
      }


    for (XmlDependencies d : m_dependencies) {
      xsb.getStringBuffer().append(d.toXml(indent2));
    }

    if (hasGroups) {
      xsb.pop("groups");
    }

    return xsb.toXML();
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy