Class SAXBuilderEngine

java.lang.Object
org.jdom2.input.sax.SAXBuilderEngine
All Implemented Interfaces:
SAXEngine

public class SAXBuilderEngine extends Object implements SAXEngine
Builds a JDOM document from files, streams, readers, URLs, or a SAX InputSource instance using a SAX parser. This Engine is built by the SAXBuilder based on the state of the SAXBuilder when the engine was produced. It is not possible to reconfigure the engine once built, but it can be reused many times (though not concurrently). This makes it the fastest way to process many multitudes of XML documents (if those documents are all parsed the same way). If you want to process in multiple threads you can safely have one SAXBuilderEngine in each thread on the condition that:
  1. The JDOMFactory is thread-safe (the JDOM-supplied JDOMFactories are)
  2. There is no XMLFilter given to the SAXBuilder, or, if there is, then it is thread-safe.
  3. If you have a custom XMLReaderJDOMFactory that it supplies a new instance of an XMLReader on each call (the JDOM-supplied ones all do).
  4. If you have a custom SAXHandlerFactory that it supplies a new instance of a SAXHanfler on each call (the JDOM-supplied one does)
Author:
Rolf Lear
See Also:
  • Constructor Details

    • SAXBuilderEngine

      public SAXBuilderEngine(XMLReader reader, SAXHandler handler, boolean validating)
      Creates a new SAXBuilderEngine.
      Parameters:
      reader - The XMLReader this Engine parses with
      handler - The SAXHandler that processes the SAX Events.
      validating - True if this is a validating system.
  • Method Details

    • getJDOMFactory

      public JDOMFactory getJDOMFactory()
      Description copied from interface: SAXEngine
      Returns the current JDOMFactory in use.
      Specified by:
      getJDOMFactory in interface SAXEngine
      Returns:
      the factory in use
    • isValidating

      public boolean isValidating()
      Description copied from interface: SAXEngine
      Returns whether validation is to be performed during the build.
      Specified by:
      isValidating in interface SAXEngine
      Returns:
      whether validation is to be performed during the build
    • getErrorHandler

      public ErrorHandler getErrorHandler()
      Description copied from interface: SAXEngine
      Returns the ErrorHandler assigned, or null if none.
      Specified by:
      getErrorHandler in interface SAXEngine
      Returns:
      the ErrorHandler assigned, or null if none
    • getEntityResolver

      public EntityResolver getEntityResolver()
      Description copied from interface: SAXEngine
      Returns the EntityResolver assigned, or null if none.
      Specified by:
      getEntityResolver in interface SAXEngine
      Returns:
      the EntityResolver assigned
    • getDTDHandler

      public DTDHandler getDTDHandler()
      Description copied from interface: SAXEngine
      Returns the DTDHandler assigned, or null if none.
      Specified by:
      getDTDHandler in interface SAXEngine
      Returns:
      the DTDHandler assigned
    • getIgnoringElementContentWhitespace

      public boolean getIgnoringElementContentWhitespace()
      Description copied from interface: SAXEngine
      Returns whether element content whitespace is to be ignored during the build.
      Specified by:
      getIgnoringElementContentWhitespace in interface SAXEngine
      Returns:
      whether element content whitespace is to be ignored during the build
    • getIgnoringBoundaryWhitespace

      public boolean getIgnoringBoundaryWhitespace()
      Description copied from interface: SAXEngine
      Returns whether or not the parser will eliminate element content containing only whitespace.
      Specified by:
      getIgnoringBoundaryWhitespace in interface SAXEngine
      Returns:
      boolean - whether only whitespace content will be ignored during build.
    • getExpandEntities

      public boolean getExpandEntities()
      Description copied from interface: SAXEngine
      Returns whether or not entities are being expanded into normal text content.
      Specified by:
      getExpandEntities in interface SAXEngine
      Returns:
      whether entities are being expanded
    • build

      public Document build(InputSource in) throws JDOMException, IOException
      Description copied from interface: SAXEngine
      This builds a document from the supplied input source.
      Specified by:
      build in interface SAXEngine
      Parameters:
      in - InputSource to read from
      Returns:
      Document resultant Document object
      Throws:
      JDOMException - when errors occur in parsing
      IOException - when an I/O error prevents a document from being fully parsed
    • build

      public Document build(InputStream in) throws JDOMException, IOException
      Description copied from interface: SAXEngine

      This builds a document from the supplied input stream.

      Specified by:
      build in interface SAXEngine
      Parameters:
      in - InputStream to read from
      Returns:
      Document resultant Document object
      Throws:
      JDOMException - when errors occur in parsing
      IOException - when an I/O error prevents a document from being fully parsed.
    • build

      public Document build(File file) throws JDOMException, IOException
      Description copied from interface: SAXEngine

      This builds a document from the supplied filename.

      Specified by:
      build in interface SAXEngine
      Parameters:
      file - File to read from
      Returns:
      Document resultant Document object
      Throws:
      JDOMException - when errors occur in parsing
      IOException - when an I/O error prevents a document from being fully parsed
    • build

      public Document build(URL url) throws JDOMException, IOException
      Description copied from interface: SAXEngine

      This builds a document from the supplied URL.

      Specified by:
      build in interface SAXEngine
      Parameters:
      url - URL to read from.
      Returns:
      Document - resultant Document object.
      Throws:
      JDOMException - when errors occur in parsing
      IOException - when an I/O error prevents a document from being fully parsed.
    • build

      public Document build(InputStream in, String systemId) throws JDOMException, IOException
      Description copied from interface: SAXEngine

      This builds a document from the supplied input stream.

      Specified by:
      build in interface SAXEngine
      Parameters:
      in - InputStream to read from.
      systemId - base for resolving relative URIs
      Returns:
      Document resultant Document object
      Throws:
      JDOMException - when errors occur in parsing
      IOException - when an I/O error prevents a document from being fully parsed
    • build

      public Document build(Reader characterStream) throws JDOMException, IOException
      Description copied from interface: SAXEngine

      This builds a document from the supplied Reader. It's the programmer's responsibility to make sure the reader matches the encoding of the file. It's often easier and safer to use an InputStream rather than a Reader, and to let the parser auto-detect the encoding from the XML declaration.

      Specified by:
      build in interface SAXEngine
      Parameters:
      characterStream - Reader to read from
      Returns:
      Document resultant Document object
      Throws:
      JDOMException - when errors occur in parsing
      IOException - when an I/O error prevents a document from being fully parsed
    • build

      public Document build(Reader characterStream, String systemId) throws JDOMException, IOException
      Description copied from interface: SAXEngine

      This builds a document from the supplied Reader. It's the programmer's responsibility to make sure the reader matches the encoding of the file. It's often easier and safer to use an InputStream rather than a Reader, and to let the parser auto-detect the encoding from the XML declaration.

      Specified by:
      build in interface SAXEngine
      Parameters:
      characterStream - Reader to read from.
      systemId - base for resolving relative URIs
      Returns:
      Document resultant Document object
      Throws:
      JDOMException - when errors occur in parsing
      IOException - when an I/O error prevents a document from being fully parsed
    • build

      public Document build(String systemId) throws JDOMException, IOException
      Description copied from interface: SAXEngine

      This builds a document from the supplied URI.

      Specified by:
      build in interface SAXEngine
      Parameters:
      systemId - URI for the input
      Returns:
      Document resultant Document object
      Throws:
      JDOMException - when errors occur in parsing
      IOException - when an I/O error prevents a document from being fully parsed