Package org.testng.reporters

Source Code of org.testng.reporters.XMLUtils

package org.testng.reporters;

import java.util.Iterator;
import java.util.Properties;
import java.util.Map.Entry;


/**
* Static helpers for XML.
*
* @author Cedric Beust Jul 21, 2003
*
*/
public final class XMLUtils {

  /** Platform specific end of line */
  private static final String EOL = System.getProperty("line.separator");
 
  private XMLUtils() {
    // Hide constructor
  }
 
  static public String xml(String indent, String elementName, String content, Properties attributes) {
    StringBuffer result = new StringBuffer();
    xmlOpen(result, indent, elementName, attributes, true /* no newline */);
    result.append(content);
    xmlClose(result, "", elementName);
   
    return result.toString();
  }
  public static void xmlOptional(StringBuffer result, String sp,
                                                      String elementName, Boolean value, Properties attributes)
  {
    if (null != value) {
      xmlRequired(result, sp, elementName, value.toString(), attributes);
    }
  }
  public static void xmlOptional(StringBuffer result, String sp,
                                                      String elementName, String value, Properties attributes)
  {
    if (null != value) {
      xmlRequired(result, sp, elementName, value, attributes);
    }
  }
  public static void xmlRequired(StringBuffer result, String sp,
                                                       String elementName, String value, Properties attributes)
  {
    result.append(xml(sp, elementName, value, attributes));
  }
 
  public static void xmlOpen(StringBuffer result, String indent,
      String tag, Properties attributes)
  {
    xmlOpen(result, indent, tag, attributes, false /* no newline */);
  }
 
  /**
   * Appends the attributes to result. The attributes are added on a single line
   * as: key1="value1" key2="value2" ... (a space is added before the first key)
   *
   * @param result the buffer to append attributes to.
   * @param attributes the attributes to append (may be null).
   */
  public static void appendAttributes(StringBuffer result, Properties attributes) {
    if (null != attributes) {
      for (Iterator it = attributes.entrySet().iterator(); it.hasNext(); ) {
        Entry entry = (Entry) it.next();
        String key = entry.getKey().toString();
        String value = entry.getValue().toString();
        result.append(" ").append(key).append("=\"").append(value).append("\"");
      }
    }
  }
 
  public static void xmlOpen(StringBuffer result, String indent,
                                                 String tag, Properties attributes,
                                                 boolean noNewLine)
  {
    result.append(indent).append("<").append(tag);
    appendAttributes(result, attributes);
    result.append(">");
    if (! noNewLine) result.append(EOL);
  }

  public static void xmlClose(StringBuffer result, String indent,
                                                 String tag)
  {
    result.append(indent).append("</").append(tag).append(">").append(EOL);
  }
}
TOP

Related Classes of org.testng.reporters.XMLUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.