com.icl.saxon.om

Class Builder

public abstract class Builder extends Emitter implements ErrorHandler, Locator, SourceLocator

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
protected intcolumnNumber
protected Controllercontroller
protected DocumentInfocurrentDocument
protected booleandiscardComments
protected ErrorHandlererrorHandler
protected ErrorListenererrorListener
protected WritererrorOutput
protected intestimatedLength
protected booleanfailed
protected booleaninDTD
protected intlineNumber
protected booleanlineNumbering
protected PreviewManagerpreviewManager
protected booleanstarted
protected Stripperstripper
static intSTANDARD_TREE
protected booleantiming
static intTINY_TREE
Constructor Summary
Builder()
create a Builder and initialise variables
Method Summary
DocumentInfobuild(SAXSource source)
Build the tree from an input source.
voiderror(SAXParseException e)
Callback interface for SAX: not for application use
voidfatalError(SAXParseException e)
Callback interface for SAX: not for application use
intgetColumnNumber()
DocumentInfogetCurrentDocument()
Get the current document
intgetLineNumber()
StringgetPublicId()
StrippergetStripper()
Get the Stripper in use
booleanisTiming()
Get timing option
protected voidreportError(SAXParseException e, boolean isFatal)
Common routine for errors and fatal errors
voidsetController(Controller c)
voidsetDiscardCommentsAndPIs(boolean discard)
Indicate whether comments and Processing Instructions should be discarded
voidsetErrorHandler(ErrorHandler eh)
Set the SAX error handler to use.
voidsetErrorListener(ErrorListener eh)
Set the JAXP error listener to use, if no SAX errorHandler has been provided.
voidsetErrorOutput(Writer writer)
Set output for error messages produced by the default error handler.
The default error handler does not throw an exception for parse errors or input I/O errors, rather it returns a result code and writes diagnostics to a user-specified output writer, which defaults to System.err
This call has no effect if setErrorHandler() has been called to supply a user-defined error handler
voidsetLineNumbering(boolean onOrOff)
Set line numbering on or off
voidsetPreviewManager(PreviewManager pm)
Set the PreviewManager to use
voidsetRootNode(DocumentInfo doc)
Set the root (document) node to use.
voidsetStripper(Stripper s)
Set the Stripper to use
voidsetTiming(boolean on)
Set timing option on or off
abstract voidsetUnparsedEntity(String name, String uri)
Set the URI for an unparsed entity in the document.
voidwarning(SAXParseException e)
Callback interface for SAX: not for application use

Field Detail

columnNumber

protected int columnNumber

controller

protected Controller controller

currentDocument

protected DocumentInfo currentDocument

discardComments

protected boolean discardComments

errorHandler

protected ErrorHandler errorHandler

errorListener

protected ErrorListener errorListener

errorOutput

protected Writer errorOutput

estimatedLength

protected int estimatedLength

failed

protected boolean failed

inDTD

protected boolean inDTD

lineNumber

protected int lineNumber

lineNumbering

protected boolean lineNumbering

previewManager

protected PreviewManager previewManager

started

protected boolean started

stripper

protected Stripper stripper

STANDARD_TREE

public static final int STANDARD_TREE

timing

protected boolean timing

TINY_TREE

public static final int TINY_TREE

Constructor Detail

Builder

public Builder()
create a Builder and initialise variables

Method Detail

build

public DocumentInfo build(SAXSource source)
Build the tree from an input source. After building the tree, it can be walked as often as required using run(Document doc).

Parameters: source The source to use. SAXSource is a SAX-defined class that allows input from a URL, a byte stream, or a character stream. SAXON also provides a subclass, ExtendedInputSource, that allows input directly from a File.

Returns: The DocumentInfo object that results from parsing the input.

Throws: TransformerException if the input document could not be read or if it was not parsed correctly.

error

public void error(SAXParseException e)
Callback interface for SAX: not for application use

fatalError

public void fatalError(SAXParseException e)
Callback interface for SAX: not for application use

getColumnNumber

public int getColumnNumber()

getCurrentDocument

public DocumentInfo getCurrentDocument()
Get the current document

Returns: the document that has been most recently built using this builder

getLineNumber

public int getLineNumber()

getPublicId

public String getPublicId()

getStripper

public Stripper getStripper()
Get the Stripper in use

isTiming

public boolean isTiming()
Get timing option

reportError

protected void reportError(SAXParseException e, boolean isFatal)
Common routine for errors and fatal errors

setController

public void setController(Controller c)

setDiscardCommentsAndPIs

public void setDiscardCommentsAndPIs(boolean discard)
Indicate whether comments and Processing Instructions should be discarded

UNKNOWN: discard true if comments and PIs are to be discarded, false if they are to be added to the tree

setErrorHandler

public void setErrorHandler(ErrorHandler eh)
Set the SAX error handler to use. If none is specified, SAXON supplies its own, which writes error messages to the selected error output writer.

Parameters: eh The error handler to use. It must conform to the interface org.xml.sax.ErrorHandler

setErrorListener

public void setErrorListener(ErrorListener eh)
Set the JAXP error listener to use, if no SAX errorHandler has been provided.

Parameters: eh The error listener to use. It must conform to the interface javax.xml.transform.ErrorListener

setErrorOutput

public void setErrorOutput(Writer writer)
Set output for error messages produced by the default error handler.
The default error handler does not throw an exception for parse errors or input I/O errors, rather it returns a result code and writes diagnostics to a user-specified output writer, which defaults to System.err
This call has no effect if setErrorHandler() has been called to supply a user-defined error handler

Parameters: writer The Writer to use for error messages

setLineNumbering

public void setLineNumbering(boolean onOrOff)
Set line numbering on or off

setPreviewManager

public void setPreviewManager(PreviewManager pm)
Set the PreviewManager to use

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.

setStripper

public void setStripper(Stripper s)
Set the Stripper to use

setTiming

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

setUnparsedEntity

public abstract void setUnparsedEntity(String name, String uri)
Set the URI for an unparsed entity in the document. Abstract method to be implemented in each subclass.

warning

public void warning(SAXParseException e)
Callback interface for SAX: not for application use