Package org.jacoco.report.internal.xml
Class XMLElement
- java.lang.Object
-
- org.jacoco.report.internal.xml.XMLElement
-
- Direct Known Subclasses:
HTMLElement
,ReportElement
public class XMLElement extends java.lang.Object
Simple API to create well formed XML streams with minimal memory overhead. AXMLElement
instance represents a single element in a XML document.XMLElement
can be used directly or might be subclassed for schema specific convenience methods.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
closed
private static java.lang.String
DOCTYPE
DOCTYPE declaration templateprivate static java.lang.String
HEADER
XML header templateprivate static java.lang.String
HEADER_STANDALONE
XML header template for standalone documentsprivate XMLElement
lastchild
private java.lang.String
name
private boolean
openTagDone
private boolean
root
protected java.io.Writer
writer
Writer for content output
-
Constructor Summary
Constructors Modifier Constructor Description private
XMLElement(java.io.Writer writer, java.lang.String name, boolean root)
XMLElement(java.lang.String name, java.lang.String pubId, java.lang.String system, boolean standalone, java.lang.String encoding, java.io.OutputStream output)
Creates a root element of a XML document.protected
XMLElement(java.lang.String name, XMLElement parent)
Creates a new child element within a XML document.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addChildElement(XMLElement child)
void
attr(java.lang.String name, int value)
Adds an attribute to this element.void
attr(java.lang.String name, long value)
Adds an attribute to this element.void
attr(java.lang.String name, java.lang.String value)
Adds an attribute to this element.void
close()
Closes this element if it has not been closed before.XMLElement
element(java.lang.String name)
Creates a new child element for this element.private void
finishOpenTag()
private void
quote(java.lang.String text)
void
text(java.lang.String text)
Adds the given text as a child to this node.
-
-
-
Field Detail
-
HEADER
private static final java.lang.String HEADER
XML header template- See Also:
- Constant Field Values
-
HEADER_STANDALONE
private static final java.lang.String HEADER_STANDALONE
XML header template for standalone documents- See Also:
- Constant Field Values
-
DOCTYPE
private static final java.lang.String DOCTYPE
DOCTYPE declaration template- See Also:
- Constant Field Values
-
writer
protected final java.io.Writer writer
Writer for content output
-
name
private final java.lang.String name
-
openTagDone
private boolean openTagDone
-
closed
private boolean closed
-
lastchild
private XMLElement lastchild
-
root
private final boolean root
-
-
Constructor Detail
-
XMLElement
private XMLElement(java.io.Writer writer, java.lang.String name, boolean root) throws java.io.IOException
- Throws:
java.io.IOException
-
XMLElement
public XMLElement(java.lang.String name, java.lang.String pubId, java.lang.String system, boolean standalone, java.lang.String encoding, java.io.OutputStream output) throws java.io.IOException
Creates a root element of a XML document.- Parameters:
name
- element namepubId
- optional schema public identifiersystem
- optional schema system identifierstandalone
- iftrue
the document is declared as standaloneencoding
- character encoding used for outputoutput
- output stream will be closed if the root element is closed- Throws:
java.io.IOException
- in case of problems with the underlying output
-
XMLElement
protected XMLElement(java.lang.String name, XMLElement parent) throws java.io.IOException
Creates a new child element within a XML document. May only be called before the parent element has been closed.- Parameters:
name
- element nameparent
- parent of this element- Throws:
java.io.IOException
- in case of problems with the underlying output or if the parent element is already closed
-
-
Method Detail
-
addChildElement
private void addChildElement(XMLElement child) throws java.io.IOException
- Throws:
java.io.IOException
-
finishOpenTag
private void finishOpenTag() throws java.io.IOException
- Throws:
java.io.IOException
-
quote
private void quote(java.lang.String text) throws java.io.IOException
- Throws:
java.io.IOException
-
attr
public final void attr(java.lang.String name, java.lang.String value) throws java.io.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 isnull
the attribute will not be added.- Parameters:
name
- attribute namevalue
- attribute value ornull
- Throws:
java.io.IOException
- in case of problems with the underlying output or if the element is already closed.
-
attr
public final void attr(java.lang.String name, int value) throws java.io.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 namevalue
- attribute value- Throws:
java.io.IOException
- in case of problems with the underlying output or if the element is already closed.
-
attr
public final void attr(java.lang.String name, long value) throws java.io.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 namevalue
- attribute value- Throws:
java.io.IOException
- in case of problems with the underlying output or if the element is already closed.
-
text
public final void text(java.lang.String text) throws java.io.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:
java.io.IOException
- in case of problems with the underlying output or if the element is already closed.
-
element
public XMLElement element(java.lang.String name) throws java.io.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:
java.io.IOException
- in case of problems with the underlying output
-
close
public final void close() throws java.io.IOException
Closes this element if it has not been closed before.- Throws:
java.io.IOException
- in case of problems with the underlying output
-
-