Class Builder

All Implemented Interfaces:
Result, SourceLocator, ErrorHandler, Locator
Direct Known Subclasses:
TinyBuilder, TreeBuilder

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 Details

    • STANDARD_TREE

      public static final int STANDARD_TREE
      See Also:
    • TINY_TREE

      public static final int TINY_TREE
      See Also:
    • estimatedLength

      protected int estimatedLength
    • errorOutput

      protected Writer errorOutput
    • stripper

      protected Stripper stripper
    • previewManager

      protected PreviewManager previewManager
    • discardComments

      protected boolean discardComments
    • currentDocument

      protected DocumentInfo currentDocument
    • errorHandler

      protected ErrorHandler errorHandler
    • errorListener

      protected ErrorListener errorListener
    • failed

      protected boolean failed
    • started

      protected boolean started
    • timing

      protected boolean timing
    • inDTD

      protected boolean inDTD
    • lineNumbering

      protected boolean lineNumbering
    • lineNumber

      protected int lineNumber
    • columnNumber

      protected int columnNumber
    • controller

      protected Controller controller
  • Constructor Details

    • Builder

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

    • setController

      public void setController(Controller c)
    • 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
    • setLineNumbering

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

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

      public Stripper getStripper()
      Get the Stripper in use
    • setPreviewManager

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

      public void setDiscardCommentsAndPIs(boolean discard)
      Indicate whether comments and Processing Instructions should be discarded
    • 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
    • build

      public DocumentInfo build(SAXSource source) throws TransformerException
      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.
    • getCurrentDocument

      public DocumentInfo getCurrentDocument()
      Get the current document
      Returns:
      the document that has been most recently built using this builder
    • warning

      public void warning(SAXParseException e)
      Callback interface for SAX: not for application use
      Specified by:
      warning in interface ErrorHandler
    • error

      public void error(SAXParseException e) throws SAXException
      Callback interface for SAX: not for application use
      Specified by:
      error in interface ErrorHandler
      Throws:
      SAXException
    • fatalError

      public void fatalError(SAXParseException e) throws SAXException
      Callback interface for SAX: not for application use
      Specified by:
      fatalError in interface ErrorHandler
      Throws:
      SAXException
    • reportError

      protected void reportError(SAXParseException e, boolean isFatal)
      Common routine for errors and fatal errors
    • 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.
      Overrides:
      setUnparsedEntity in class Emitter
    • getPublicId

      public String getPublicId()
      Specified by:
      getPublicId in interface Locator
      Specified by:
      getPublicId in interface SourceLocator
    • getLineNumber

      public int getLineNumber()
      Specified by:
      getLineNumber in interface Locator
      Specified by:
      getLineNumber in interface SourceLocator
    • getColumnNumber

      public int getColumnNumber()
      Specified by:
      getColumnNumber in interface Locator
      Specified by:
      getColumnNumber in interface SourceLocator