org.xml.sax.helpers

## Class ParserAdapter

- java.lang.Object
- - org.xml.sax.helpers.ParserAdapter

All Implemented Interfaces:
  DocumentHandler, XMLReader

    public class ParserAdapter
    extends java.lang.Object
    implements XMLReader, DocumentHandler

Adapt a SAX1 Parser as a SAX2 XMLReader.

> This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.

This class wraps a SAX1 `Parser` and makes it act as a SAX2 `XMLReader`, with feature, property, and Namespace support. Note that it is not possible to report `skippedEntity` events, since SAX1 does not make that information available.

This adapter does not test for duplicate Namespace-qualified attribute names.

Since:
  SAX 2.0
Version:
  2.0.1 (sax2r2)
Author:
  David Megginson
See Also:
  `XMLReaderAdapter`, `XMLReader`, `Parser`

### Constructor Summary

Constructors
Constructor and Description
`ParserAdapter()` Construct a new parser adapter.
`ParserAdapter(Parser parser)` Construct a new parser adapter.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `characters(char[] ch, int start, int length)` Adapter implementation method; do not call.
`void` `endDocument()` Adapter implementation method; do not call.
`void` `endElement(java.lang.String qName)` Adapter implementation method; do not call.
`ContentHandler` `getContentHandler()` Return the current content handler.
`DTDHandler` `getDTDHandler()` Return the current DTD handler.
`EntityResolver` `getEntityResolver()` Return the current entity resolver.
`ErrorHandler` `getErrorHandler()` Return the current error handler.
`boolean` `getFeature(java.lang.String name)` Check a parser feature flag.
`java.lang.Object` `getProperty(java.lang.String name)` Get a parser property.
`void` `ignorableWhitespace(char[] ch, int start, int length)` Adapter implementation method; do not call.
`void` `parse(InputSource input)` Parse an XML document.
`void` `parse(java.lang.String systemId)` Parse an XML document.
`void` `processingInstruction(java.lang.String target, java.lang.String data)` Adapter implementation method; do not call.
`void` `setContentHandler(ContentHandler handler)` Set the content handler.
`void` `setDocumentLocator(Locator locator)` Adapter implementation method; do not call.
`void` `setDTDHandler(DTDHandler handler)` Set the DTD handler.
`void` `setEntityResolver(EntityResolver resolver)` Set the entity resolver.
`void` `setErrorHandler(ErrorHandler handler)` Set the error handler.
`void` `setFeature(java.lang.String name, boolean value)` Set a feature flag for the parser.
`void` `setProperty(java.lang.String name, java.lang.Object value)` Set a parser property.
`void` `startDocument()` Adapter implementation method; do not call.
`void` `startElement(java.lang.String qName, AttributeList qAtts)` Adapter implementation method; do not call.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ParserAdapter

    public ParserAdapter()
                  throws SAXException

Construct a new parser adapter.

Use the "org.xml.sax.parser" property to locate the embedded SAX1 driver.

Throws:
  `SAXException` - If the embedded driver cannot be instantiated or if the org.xml.sax.parser property is not specified.

#### ParserAdapter

    public ParserAdapter(Parser parser)

Construct a new parser adapter.

Note that the embedded parser cannot be changed once the adapter is created; to embed a different parser, allocate a new ParserAdapter.

Parameters:
  `parser` - The SAX1 parser to embed.
Throws:
  `java.lang.NullPointerException` - If the parser parameter is null.

### Method Detail

#### setFeature

    public void setFeature(java.lang.String name,
                           boolean value)
                    throws SAXNotRecognizedException,
                           SAXNotSupportedException

Set a feature flag for the parser.

The only features recognized are namespaces and namespace-prefixes.

Specified by:
  `setFeature` in interface `XMLReader`
Parameters:
  `name` - The feature name, as a complete URI.
  `value` - The requested feature value.
Throws:
  `SAXNotRecognizedException` - If the feature can't be assigned or retrieved.
  `SAXNotSupportedException` - If the feature can't be assigned that value.
See Also:
  `XMLReader.setFeature(java.lang.String, boolean)`

#### getFeature

    public boolean getFeature(java.lang.String name)
                       throws SAXNotRecognizedException,
                              SAXNotSupportedException

Check a parser feature flag.

The only features recognized are namespaces and namespace-prefixes.

Specified by:
  `getFeature` in interface `XMLReader`
Parameters:
  `name` - The feature name, as a complete URI.
Returns:
  The current feature value.
Throws:
  `SAXNotRecognizedException` - If the feature value can't be assigned or retrieved.
  `SAXNotSupportedException` - If the feature is not currently readable.
See Also:
  `XMLReader.setFeature(java.lang.String, boolean)`

#### setProperty

    public void setProperty(java.lang.String name,
                            java.lang.Object value)
                     throws SAXNotRecognizedException,
                            SAXNotSupportedException

Set a parser property.

No properties are currently recognized.

Specified by:
  `setProperty` in interface `XMLReader`
Parameters:
  `name` - The property name.
  `value` - The property value.
Throws:
  `SAXNotRecognizedException` - If the property value can't be assigned or retrieved.
  `SAXNotSupportedException` - If the property can't be assigned that value.
See Also:
  `XMLReader.setProperty(java.lang.String, java.lang.Object)`

#### getProperty

    public java.lang.Object getProperty(java.lang.String name)
                                 throws SAXNotRecognizedException,
                                        SAXNotSupportedException

Get a parser property.

No properties are currently recognized.

Specified by:
  `getProperty` in interface `XMLReader`
Parameters:
  `name` - The property name.
Returns:
  The property value.
Throws:
  `SAXNotRecognizedException` - If the property value can't be assigned or retrieved.
  `SAXNotSupportedException` - If the property value is not currently readable.
See Also:
  `XMLReader.getProperty(java.lang.String)`

#### setEntityResolver

    public void setEntityResolver(EntityResolver resolver)

Set the entity resolver.

Specified by:
  `setEntityResolver` in interface `XMLReader`
Parameters:
  `resolver` - The new entity resolver.
See Also:
  `XMLReader.setEntityResolver(org.xml.sax.EntityResolver)`

#### getEntityResolver

    public EntityResolver getEntityResolver()

Return the current entity resolver.

Specified by:
  `getEntityResolver` in interface `XMLReader`
Returns:
  The current entity resolver, or null if none was supplied.
See Also:
  `XMLReader.getEntityResolver()`

#### setDTDHandler

    public void setDTDHandler(DTDHandler handler)

Set the DTD handler.

Specified by:
  `setDTDHandler` in interface `XMLReader`
Parameters:
  `handler` - the new DTD handler
See Also:
  `XMLReader.setEntityResolver(org.xml.sax.EntityResolver)`

#### getDTDHandler

    public DTDHandler getDTDHandler()

Return the current DTD handler.

Specified by:
  `getDTDHandler` in interface `XMLReader`
Returns:
  the current DTD handler, or null if none was supplied
See Also:
  `XMLReader.getEntityResolver()`

#### setContentHandler

    public void setContentHandler(ContentHandler handler)

Set the content handler.

Specified by:
  `setContentHandler` in interface `XMLReader`
Parameters:
  `handler` - the new content handler
See Also:
  `XMLReader.setEntityResolver(org.xml.sax.EntityResolver)`

#### getContentHandler

    public ContentHandler getContentHandler()

Return the current content handler.

Specified by:
  `getContentHandler` in interface `XMLReader`
Returns:
  The current content handler, or null if none was supplied.
See Also:
  `XMLReader.getEntityResolver()`

#### setErrorHandler

    public void setErrorHandler(ErrorHandler handler)

Set the error handler.

Specified by:
  `setErrorHandler` in interface `XMLReader`
Parameters:
  `handler` - The new error handler.
See Also:
  `XMLReader.setEntityResolver(org.xml.sax.EntityResolver)`

#### getErrorHandler

    public ErrorHandler getErrorHandler()

Return the current error handler.

Specified by:
  `getErrorHandler` in interface `XMLReader`
Returns:
  The current error handler, or null if none was supplied.
See Also:
  `XMLReader.getEntityResolver()`

#### parse

    public void parse(java.lang.String systemId)
               throws java.io.IOException,
                      SAXException

Parse an XML document.

Specified by:
  `parse` in interface `XMLReader`
Parameters:
  `systemId` - The absolute URL of the document.
Throws:
  `java.io.IOException` - If there is a problem reading the raw content of the document.
  `SAXException` - If there is a problem processing the document.
See Also:
  `parse(org.xml.sax.InputSource)`, `Parser.parse(java.lang.String)`

#### parse

    public void parse(InputSource input)
               throws java.io.IOException,
                      SAXException

Parse an XML document.

Specified by:
  `parse` in interface `XMLReader`
Parameters:
  `input` - An input source for the document.
Throws:
  `java.io.IOException` - If there is a problem reading the raw content of the document.
  `SAXException` - If there is a problem processing the document.
See Also:
  `parse(java.lang.String)`, `Parser.parse(org.xml.sax.InputSource)`

#### setDocumentLocator

    public void setDocumentLocator(Locator locator)

Adapter implementation method; do not call. Adapt a SAX1 document locator event.

Specified by:
  `setDocumentLocator` in interface `DocumentHandler`
Parameters:
  `locator` - A document locator.
See Also:
  `ContentHandler.setDocumentLocator(org.xml.sax.Locator)`

#### startDocument

    public void startDocument()
                       throws SAXException

Adapter implementation method; do not call. Adapt a SAX1 start document event.

Specified by:
  `startDocument` in interface `DocumentHandler`
Throws:
  `SAXException` - The client may raise a processing exception.
See Also:
  `DocumentHandler.startDocument()`

#### endDocument

    public void endDocument()
                     throws SAXException

Adapter implementation method; do not call. Adapt a SAX1 end document event.

Specified by:
  `endDocument` in interface `DocumentHandler`
Throws:
  `SAXException` - The client may raise a processing exception.
See Also:
  `DocumentHandler.endDocument()`

#### startElement

    public void startElement(java.lang.String qName,
                             AttributeList qAtts)
                      throws SAXException

Adapter implementation method; do not call. Adapt a SAX1 startElement event.

If necessary, perform Namespace processing.

Specified by:
  `startElement` in interface `DocumentHandler`
Parameters:
  `qName` - The qualified (prefixed) name.
  `qAtts` - The XML attribute list (with qnames).
Throws:
  `SAXException` - The client may raise a processing exception.
See Also:
  `DocumentHandler.endElement(java.lang.String)`, `AttributeList`

#### endElement

    public void endElement(java.lang.String qName)
                    throws SAXException

Adapter implementation method; do not call. Adapt a SAX1 end element event.

Specified by:
  `endElement` in interface `DocumentHandler`
Parameters:
  `qName` - The qualified (prefixed) name.
Throws:
  `SAXException` - The client may raise a processing exception.
See Also:
  `DocumentHandler.endElement(java.lang.String)`

#### characters

    public void characters(char[] ch,
                           int start,
                           int length)
                    throws SAXException

Adapter implementation method; do not call. Adapt a SAX1 characters event.

Specified by:
  `characters` in interface `DocumentHandler`
Parameters:
  `ch` - An array of characters.
  `start` - The starting position in the array.
  `length` - The number of characters to use.
Throws:
  `SAXException` - The client may raise a processing exception.
See Also:
  `DocumentHandler.characters(char[], int, int)`

#### ignorableWhitespace

    public void ignorableWhitespace(char[] ch,
                                    int start,
                                    int length)
                             throws SAXException

Adapter implementation method; do not call. Adapt a SAX1 ignorable whitespace event.

Specified by:
  `ignorableWhitespace` in interface `DocumentHandler`
Parameters:
  `ch` - An array of characters.
  `start` - The starting position in the array.
  `length` - The number of characters to use.
Throws:
  `SAXException` - The client may raise a processing exception.
See Also:
  `DocumentHandler.ignorableWhitespace(char[], int, int)`

#### processingInstruction

    public void processingInstruction(java.lang.String target,
                                      java.lang.String data)
                               throws SAXException

Adapter implementation method; do not call. Adapt a SAX1 processing instruction event.

Specified by:
  `processingInstruction` in interface `DocumentHandler`
Parameters:
  `target` - The processing instruction target.
  `data` - The remainder of the processing instruction
Throws:
  `SAXException` - The client may raise a processing exception.
See Also:
  `DocumentHandler.processingInstruction(java.lang.String, java.lang.String)`