net.sf.saxon.event

Class Builder

Implemented Interfaces:
Receiver, Result
Known Direct 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 Summary

static int
LINKED_TREE
Constant denoting the "linked tree" in which each node is represented as an object
static int
STANDARD_TREE
Alternative constant denoting the "linked tree" in which each node is represented as an object Retained for backwards compatibility
static int
TINY_TREE
Constant denoting the "tiny tree" in which the tree is represented internally using arrays of integers
static int
UNSPECIFIED_TREE_MODEL
Constant denoting a request for the default tree model
protected String
baseURI
protected Configuration
config
protected NodeInfo
currentRoot
protected boolean
lineNumbering
protected NamePool
namePool
protected PipelineConfiguration
pipe
protected boolean
started
protected String
systemId
protected boolean
timing

Constructor Summary

Builder()
create a Builder and initialise variables

Method Summary

static NodeInfo
build(Source source, Stripper stripper, Configuration config)
Static method to build a document from any kind of Source object.
static NodeInfo
build(Source source, Stripper stripper, PipelineConfiguration pipe)
Static method to build a document from any kind of Source object.
void
close()
void
endDocument()
Notify the end of a document node
String
getBaseURI()
Get the base URI of the document node of the tree being constructed by this builder
Configuration
getConfiguration()
Get the Configuration
NodeInfo
getCurrentRoot()
Get the current root node.
PipelineConfiguration
getPipelineConfiguration()
String
getSystemId()
The SystemId is equivalent to the document-uri property defined in the XDM data model.
boolean
isTiming()
Get timing option
void
open()
void
setBaseURI(String baseURI)
Set the base URI of the document node of the tree being constructed by this builder
void
setLineNumbering(boolean lineNumbering)
Set line numbering on or off
void
setPipelineConfiguration(PipelineConfiguration pipe)
void
setSystemId(String systemId)
The SystemId is equivalent to the document-uri property defined in the XDM data model.
void
setTiming(boolean on)
Set timing option on or off
void
startDocument(int properties)
Start of a document node.

Field Details

LINKED_TREE

public static final int LINKED_TREE
Constant denoting the "linked tree" in which each node is represented as an object
Field Value:
0

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
Field Value:
0

TINY_TREE

public static final int TINY_TREE
Constant denoting the "tiny tree" in which the tree is represented internally using arrays of integers
Field Value:
1

UNSPECIFIED_TREE_MODEL

public static final int UNSPECIFIED_TREE_MODEL
Constant denoting a request for the default tree model
Field Value:
-1

baseURI

protected String baseURI

config

protected Configuration config

currentRoot

protected NodeInfo currentRoot

lineNumbering

protected boolean lineNumbering

namePool

protected NamePool namePool

pipe

protected PipelineConfiguration pipe

started

protected boolean started

systemId

protected String systemId

timing

protected boolean timing

Constructor Details

Builder

public Builder()
create a Builder and initialise variables

Method Details

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.

The preferred way to construct a document tree from a Source object is to use the method Configuration.buildDocument(Source).

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.

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.

The preferred way to construct a document tree from a Source object is to use the method Configuration.buildDocument(Source).

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.

close

public void close()
            throws XPathException
Specified by:
close in interface Receiver

endDocument

public void endDocument()
            throws XPathException
Notify the end of a document node
Specified by:
endDocument in interface Receiver

getBaseURI

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

getConfiguration

public Configuration getConfiguration()
Get the Configuration
Returns:
the Saxon configuration

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

getPipelineConfiguration

public PipelineConfiguration getPipelineConfiguration()
Specified by:
getPipelineConfiguration in interface Receiver

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

isTiming

public boolean isTiming()
Get timing option
Returns:
true if timing information has been requested

open

public void open()
            throws XPathException
Specified by:
open in interface Receiver

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

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.

setPipelineConfiguration

public void setPipelineConfiguration(PipelineConfiguration pipe)
Specified by:
setPipelineConfiguration in interface Receiver

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
Parameters:
systemId - the SystemId, that is, the document-uri.

setTiming

public void setTiming(boolean on)
Set timing option on or off
Parameters:
on - set to true to turn timing on. This causes the builder to display statistical information about the tree that is constructed. It corresponds to the command line -t 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