Class Builder

  • All Implemented Interfaces:
    javax.xml.transform.Result, Receiver
    Direct Known Subclasses:
    TinyBuilder, TreeBuilder

    public abstract class Builder
    extends java.lang.Object
    implements Receiver
    The abstract Builder class is responsible for taking a stream of SAX events and constructing a Document tree. There is one concrete subclass for each tree implementation.
    Author:
    Michael H. Kay
    • Field Detail

      • LINKED_TREE

        public static final int LINKED_TREE
        Constant denoting the "linked tree" in which each node is represented as an object
        See Also:
        Constant Field Values
      • STANDARD_TREE

        public static final int STANDARD_TREE
        Alternative constant denoting the "linked tree" in which each node is represented as an object Retained for backwards compatibility
        See Also:
        Constant Field Values
      • TINY_TREE

        public static final int TINY_TREE
        Constant denoting the "tiny tree" in which the tree is represented internally using arrays of integers
        See Also:
        Constant Field Values
      • systemId

        protected java.lang.String systemId
      • baseURI

        protected java.lang.String baseURI
      • currentRoot

        protected NodeInfo currentRoot
      • lineNumbering

        protected boolean lineNumbering
      • started

        protected boolean started
      • timing

        protected boolean timing
    • Constructor Detail

      • Builder

        public Builder()
        create a Builder and initialise variables
    • Method Detail

      • setSystemId

        public void setSystemId​(java.lang.String systemId)
        The SystemId is equivalent to the document-uri property defined in the XDM data model. It should be set only in the case of a document that is potentially retrievable via this URI. This means it should not be set in the case of a temporary tree constructed in the course of executing a query or transformation.
        Specified by:
        setSystemId in interface Receiver
        Specified by:
        setSystemId in interface javax.xml.transform.Result
        Parameters:
        systemId - the SystemId, that is, the document-uri.
      • getSystemId

        public java.lang.String getSystemId()
        The SystemId is equivalent to the document-uri property defined in the XDM data model. It should be set only in the case of a document that is potentially retrievable via this URI. This means the value will be null in the case of a temporary tree constructed in the course of executing a query or transformation.
        Specified by:
        getSystemId in interface javax.xml.transform.Result
        Returns:
        the SystemId, that is, the document-uri.
      • setBaseURI

        public void setBaseURI​(java.lang.String baseURI)
        Set the base URI of the document node of the tree being constructed by this builder
        Parameters:
        baseURI - the base URI
      • getBaseURI

        public java.lang.String getBaseURI()
        Get the base URI of the document node of the tree being constructed by this builder
        Returns:
        the base URI
      • setLineNumbering

        public void setLineNumbering​(boolean lineNumbering)
        Set line numbering on or off
        Parameters:
        lineNumbering - set to true if line numbers are to be maintained for nodes in the tree being constructed.
      • setTiming

        public void setTiming​(boolean on)
        Set timing option on or off
      • isTiming

        public boolean isTiming()
        Get timing option
      • startDocument

        public void startDocument​(int properties)
                           throws XPathException
        Start of a document node. This event is ignored: we simply add the contained elements to the current document
        Specified by:
        startDocument in interface Receiver
        Throws:
        XPathException
      • getCurrentRoot

        public NodeInfo getCurrentRoot()
        Get the current root node. This will normally be a document node, but if the root of the tree is an element node, it can be an element.
        Returns:
        the root of the tree that is currently being built, or that has been most recently built using this builder
      • build

        public static NodeInfo build​(javax.xml.transform.Source source,
                                     Stripper stripper,
                                     Configuration config)
                              throws XPathException
        Static method to build a document from any kind of Source object. If the source is already in the form of a tree, it is wrapped as required.
        Parameters:
        source - Any javax.xml.transform.Source object
        stripper - A stripper object, if whitespace text nodes are to be stripped; otherwise null.
        config - The Configuration object
        Returns:
        the NodeInfo of the start node in the resulting document object.
        Throws:
        XPathException
      • build

        public static NodeInfo build​(javax.xml.transform.Source source,
                                     Stripper stripper,
                                     PipelineConfiguration pipe)
                              throws XPathException
        Static method to build a document from any kind of Source object. If the source is already in the form of a tree, it is wrapped as required.
        Parameters:
        source - Any javax.xml.transform.Source object
        stripper - A stripper object, if whitespace text nodes are to be stripped; otherwise null.
        pipe - The PipelineConfiguration object
        Returns:
        the NodeInfo of the start node in the resulting document object.
        Throws:
        XPathException