## net.sf.saxon.event
Class Builder

    java.lang.Object
      |
      +--net.sf.saxon.event.Builder

All Implemented Interfaces:
  Receiver, javax.xml.transform.Result

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.

Field Summary
`protected Configuration` `config`
`protected DocumentInfo` `currentDocument`
`protected boolean` `lineNumbering`
`protected LocationProvider` `locator`
`protected NamePool` `namePool`
`static int` `STANDARD_TREE`
`protected boolean` `started`
`protected java.lang.String` `systemId`
`protected boolean` `timing`
`static int` `TINY_TREE`

Fields inherited from interface javax.xml.transform.Result
`PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

Constructor Summary
`Builder()` create a Builder and initialise variables

Method Summary
`static NodeInfo` `build(javax.xml.transform.Source source, Stripper stripper, Configuration config)` Static method to build a document from any kind of Source object.
`void` `close()` Notify the end of the event stream
`void` `endDocument()` Notify the end of a document node
`Configuration` `getConfiguration()` Get the configuration
`DocumentInfo` `getCurrentDocument()` Get the current document
`LocationProvider` `getDocumentLocator()` Get the Document Locator
`java.lang.String` `getSystemId()`
`boolean` `isTiming()` Get timing option
`void` `open()` Notify the start of the event stream
`void` `setConfiguration(Configuration config)` Set the configuration
`void` `setDocumentLocator(LocationProvider loc)` Set location provider, to identify position in the source document or stylesheet.
`void` `setLineNumbering(boolean is)`
`void` `setRootNode(DocumentInfo doc)` Set the root (document) node to use.
`void` `setSystemId(java.lang.String systemId)` Set the System ID of the destination tree
`void` `setTiming(boolean on)` Set timing option on or off
`void` `startDocument(int properties)` Start of a document node.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface net.sf.saxon.event.Receiver
`attribute, characters, comment, endElement, namespace, processingInstruction, setUnparsedEntity, startContent, startElement`

Field Detail

### STANDARD_TREE

    public static final int STANDARD_TREE

See Also:
  Constant Field Values

### TINY_TREE

    public static final int TINY_TREE

See Also:
  Constant Field Values

### config

    protected Configuration config

### namePool

    protected NamePool namePool

### systemId

    protected java.lang.String systemId

### locator

    protected LocationProvider locator

### currentDocument

    protected DocumentInfo currentDocument

### 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

### setConfiguration

    public void setConfiguration(Configuration config)

  Description copied from interface: `Receiver`
  Set the configuration

  Specified by:
    `setConfiguration` in interface `Receiver`

### getConfiguration

    public Configuration getConfiguration()

  Description copied from interface: `Receiver`
  Get the configuration

  Specified by:
    `getConfiguration` in interface `Receiver`

### setSystemId

    public void setSystemId(java.lang.String systemId)

  Description copied from interface: `Receiver`
  Set the System ID of the destination tree

  Specified by:
    `setSystemId` in interface `Receiver`

### getSystemId

    public java.lang.String getSystemId()

  Specified by:
    `getSystemId` in interface `javax.xml.transform.Result`

### setLineNumbering

    public void setLineNumbering(boolean is)

### setDocumentLocator

    public void setDocumentLocator(LocationProvider loc)

  Description copied from interface: `Receiver`
  Set location provider, to identify position in the source document or stylesheet. This method may only be called before the startDocument() event. However, the locator returned by the location provider may be different on different occasions. If a location provider is supplied, it may be used by the Receiver to obtain information about the location of the current event in a source XML document.

  Specified by:
    `setDocumentLocator` in interface `Receiver`

### getDocumentLocator

    public LocationProvider getDocumentLocator()

  Get the Document Locator

  Specified by:
    `getDocumentLocator` in interface `Receiver`

### setRootNode

    public void setRootNode(DocumentInfo doc)

  Set the root (document) node to use. This method is used to support the JAXP facility to attach transformation output to a supplied Document node. It must be called before startDocument(), and the type of document node must be compatible with the type of Builder used.

### 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`
    `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`
    `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`
    `XPathException`

### endDocument

    public void endDocument()
                     throws XPathException

  Notify the end of a document node

  Specified by:
    `endDocument` in interface `Receiver`
    `XPathException`

### getCurrentDocument

    public DocumentInfo getCurrentDocument()

  Get the current document

  Returns:
    the document 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.
    `XPathException`