Class XMLElement

java.lang.Object
org.jacoco.report.internal.xml.XMLElement
Direct Known Subclasses:
HTMLElement, ReportElement

public class XMLElement extends Object
Simple API to create well formed XML streams with minimal memory overhead. A XMLElement instance represents a single element in a XML document. XMLElement can be used directly or might be subclassed for schema specific convenience methods.
  • Field Details

    • HEADER_STANDALONE

      private static final String HEADER_STANDALONE
      XML header template for standalone documents
      See Also:
    • DOCTYPE

      private static final String DOCTYPE
      DOCTYPE declaration template
      See Also:
    • writer

      protected final Writer writer
      Writer for content output
    • name

      private final String name
    • openTagDone

      private boolean openTagDone
    • closed

      private boolean closed
    • lastchild

      private XMLElement lastchild
    • root

      private final boolean root
  • Constructor Details

    • XMLElement

      private XMLElement(Writer writer, String name, boolean root) throws IOException
      Throws:
      IOException
    • XMLElement

      public XMLElement(String name, String pubId, String system, boolean standalone, String encoding, OutputStream output) throws IOException
      Creates a root element of a XML document.
      Parameters:
      name - element name
      pubId - optional schema public identifier
      system - optional schema system identifier
      standalone - if true the document is declared as standalone
      encoding - character encoding used for output
      output - output stream will be closed if the root element is closed
      Throws:
      IOException - in case of problems with the underlying output
    • XMLElement

      protected XMLElement(String name, XMLElement parent) throws IOException
      Creates a new child element within a XML document. May only be called before the parent element has been closed.
      Parameters:
      name - element name
      parent - parent of this element
      Throws:
      IOException - in case of problems with the underlying output or if the parent element is already closed
  • Method Details

    • addChildElement

      private void addChildElement(XMLElement child) throws IOException
      Throws:
      IOException
    • finishOpenTag

      private void finishOpenTag() throws IOException
      Throws:
      IOException
    • quote

      private void quote(String text) throws IOException
      Throws:
      IOException
    • attr

      public final void attr(String name, String value) throws IOException
      Adds an attribute to this element. May only be called before an child element is added or this element has been closed. The attribute value will be quoted. If the value is null the attribute will not be added.
      Parameters:
      name - attribute name
      value - attribute value or null
      Throws:
      IOException - in case of problems with the underlying output or if the element is already closed.
    • attr

      public final void attr(String name, int value) throws IOException
      Adds an attribute to this element. May only be called before an child element is added or this element has been closed. The attribute value is the decimal representation of the given int value.
      Parameters:
      name - attribute name
      value - attribute value
      Throws:
      IOException - in case of problems with the underlying output or if the element is already closed.
    • attr

      public final void attr(String name, long value) throws IOException
      Adds an attribute to this element. May only be called before an child element is added or this element has been closed. The attribute value is the decimal representation of the given long value.
      Parameters:
      name - attribute name
      value - attribute value
      Throws:
      IOException - in case of problems with the underlying output or if the element is already closed.
    • text

      public final void text(String text) throws IOException
      Adds the given text as a child to this node. The text will be quoted. May only be called before this element has been closed.
      Parameters:
      text - text to add
      Throws:
      IOException - in case of problems with the underlying output or if the element is already closed.
    • element

      public XMLElement element(String name) throws IOException
      Creates a new child element for this element. Might be overridden in subclasses to return a instance of the subclass.
      Parameters:
      name - name of the child element
      Returns:
      child element instance
      Throws:
      IOException - in case of problems with the underlying output
    • close

      public final void close() throws IOException
      Closes this element if it has not been closed before.
      Throws:
      IOException - in case of problems with the underlying output