Class Builder

java.lang.Object
net.sf.saxon.event.Builder
All Implemented Interfaces:
Result, Receiver
Direct Known Subclasses:
TinyBuilder, TreeBuilder

public abstract class Builder extends 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 Details

    • LINKED_TREE

      public static final int LINKED_TREE
      Constant denoting the "linked tree" in which each node is represented as an object
      See Also:
    • 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:
    • 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:
    • pipe

      protected PipelineConfiguration pipe
    • config

      protected Configuration config
    • namePool

      protected NamePool namePool
    • systemId

      protected String systemId
    • baseURI

      protected String baseURI
    • currentRoot

      protected NodeInfo currentRoot
    • lineNumbering

      protected boolean lineNumbering
    • started

      protected boolean started
    • timing

      protected boolean timing
  • Constructor Details

    • Builder

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

    • setPipelineConfiguration

      public void setPipelineConfiguration(PipelineConfiguration pipe)
      Description copied from interface: Receiver
      Set the pipeline configuration
      Specified by:
      setPipelineConfiguration in interface Receiver
    • getPipelineConfiguration

      public PipelineConfiguration getPipelineConfiguration()
      Description copied from interface: Receiver
      Get the pipeline configuration
      Specified by:
      getPipelineConfiguration in interface Receiver
    • getConfiguration

      public Configuration getConfiguration()
    • setSystemId

      public void setSystemId(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 Result
      Parameters:
      systemId - the SystemId, that is, the document-uri.
    • getSystemId

      public 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 Result
      Returns:
      the SystemId, that is, the document-uri.
    • setBaseURI

      public void setBaseURI(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 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
    • open

      public void open() throws XPathException
      Description copied from interface: Receiver
      Notify the start of the event stream
      Specified by:
      open in interface Receiver
      Throws:
      XPathException
    • close

      public void close() throws XPathException
      Description copied from interface: Receiver
      Notify the end of the event stream
      Specified by:
      close in interface Receiver
      Throws:
      XPathException
    • 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
    • endDocument

      public void endDocument() throws XPathException
      Notify the end of a document node
      Specified by:
      endDocument 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(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(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