org.jfree.xml
Class Parser

java.lang.Object
  extended byorg.xml.sax.helpers.DefaultHandler
      extended byorg.jfree.xml.Parser
All Implemented Interfaces:
Configuration, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public abstract class Parser
extends org.xml.sax.helpers.DefaultHandler
implements Configuration

The Parser handles the SAXEvents and forwards the event call to the currently active ElementDefinitionHandler. Contains methods to manage and configure the parsing process.

An initial report definition handler must be set before the parser can be used.

Author:
Thomas Morgner

Field Summary
static java.lang.String CONTENTBASE_KEY
          A key for the content base.
 
Constructor Summary
Parser()
          Creates a new parser.
 
Method Summary
 void characters(char[] ch, int start, int length)
          Receive notification of character data inside an element.
 void endDocument()
          Receive notification of the end of the document.
 void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
          Receive notification of the end of an element.
 java.lang.String getConfigProperty(java.lang.String key)
          Returns the configuration property with the specified key.
 java.lang.String getConfigProperty(java.lang.String key, java.lang.String defaultValue)
          Returns the configuration property with the specified key (or the specified default value if there is no such property).
 java.lang.Object getHelperObject(java.lang.String key)
           
 ElementDefinitionHandler getInitialFactory()
          Returns the initial handler.
abstract  Parser getInstance()
          Returns a new instance of the parser.
 org.xml.sax.Locator getLocator()
          Returns the current locator.
abstract  java.lang.Object getResult()
          Returns the parsed result object after the parsing is complete.
 ElementDefinitionHandler peekFactory()
          Reads a handler off the stack without removing it.
 ElementDefinitionHandler popFactory()
          Pops a handler from the stack.
 void pushFactory(ElementDefinitionHandler factory)
          Pushes a handler onto the stack.
 void setConfigProperty(java.lang.String key, java.lang.String value)
          Sets a parser configuration value.
 void setDocumentLocator(org.xml.sax.Locator locator)
          Receive an object for locating the origin of SAX document events.
 void setHelperObject(java.lang.String key, java.lang.Object value)
           
 void setInitialFactory(ElementDefinitionHandler factory)
          Sets the initial handler.
 void startDocument()
          Receive notification of the beginning of the document.
 void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes)
          Receive notification of the start of an element.
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, skippedEntity, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONTENTBASE_KEY

public static final java.lang.String CONTENTBASE_KEY
A key for the content base.

See Also:
Constant Field Values
Constructor Detail

Parser

public Parser()
Creates a new parser.

Method Detail

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator locator)
Receive an object for locating the origin of SAX document events. The locator allows the application to determine the end position of any document-related event, even if the parser is not reporting an error. Typically, the application will use this information for reporting its own errors (such as character content that does not match an application's business rules). The information returned by the locator is probably not sufficient for use with a search engine.

Specified by:
setDocumentLocator in interface org.xml.sax.ContentHandler
Parameters:
locator -

getLocator

public org.xml.sax.Locator getLocator()
Returns the current locator.

Returns:
the locator.

pushFactory

public void pushFactory(ElementDefinitionHandler factory)
Pushes a handler onto the stack.

Parameters:
factory - the handler.

peekFactory

public ElementDefinitionHandler peekFactory()
Reads a handler off the stack without removing it.

Returns:
The handler.

popFactory

public ElementDefinitionHandler popFactory()
Pops a handler from the stack.

Returns:
The handler.

endDocument

public void endDocument()
                 throws org.xml.sax.SAXException
Receive notification of the end of the document.

By default, do nothing. Application writers may override this method in a subclass to take specific actions at the end of a document (such as finalising a tree or closing an output file).

Specified by:
endDocument in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception.
See Also:
ContentHandler.endDocument()

startDocument

public void startDocument()
                   throws org.xml.sax.SAXException
Receive notification of the beginning of the document.

By default, do nothing. Application writers may override this method in a subclass to take specific actions at the beginning of a document (such as allocating the root node of a tree or creating an output file).

Specified by:
startDocument in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception.
See Also:
ContentHandler.startDocument()

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
Receive notification of character data inside an element.

By default, do nothing. Application writers may override this method to take specific actions for each chunk of character data (such as adding the data to a node or buffer, or printing it to a file).

Specified by:
characters in interface org.xml.sax.ContentHandler
Parameters:
ch - the characters.
start - the start position in the character array.
length - the number of characters to use from the character array.
Throws:
org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception.
See Also:
ContentHandler.characters(char[], int, int)

endElement

public void endElement(java.lang.String uri,
                       java.lang.String localName,
                       java.lang.String qName)
                throws org.xml.sax.SAXException
Receive notification of the end of an element.

By default, do nothing. Application writers may override this method in a subclass to take specific actions at the end of each element (such as finalising a tree node or writing output to a file).

Specified by:
endElement in interface org.xml.sax.ContentHandler
Parameters:
uri - the URI.
localName - the element type name.
qName - the name.
Throws:
org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception.
See Also:
ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)

startElement

public void startElement(java.lang.String uri,
                         java.lang.String localName,
                         java.lang.String qName,
                         org.xml.sax.Attributes attributes)
                  throws org.xml.sax.SAXException
Receive notification of the start of an element.

By default, do nothing. Application writers may override this method in a subclass to take specific actions at the start of each element (such as allocating a new tree node or writing output to a file).

Specified by:
startElement in interface org.xml.sax.ContentHandler
Parameters:
uri - the URI.
localName - the element type name.
qName - the name.
attributes - the specified or defaulted attributes.
Throws:
org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception.
See Also:
ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)

setInitialFactory

public void setInitialFactory(ElementDefinitionHandler factory)
Sets the initial handler.

Parameters:
factory - the initial handler.

getInitialFactory

public ElementDefinitionHandler getInitialFactory()
Returns the initial handler.

Returns:
The initial handler.

getConfigProperty

public java.lang.String getConfigProperty(java.lang.String key)
Returns the configuration property with the specified key.

Specified by:
getConfigProperty in interface Configuration
Parameters:
key - the property key.
Returns:
the property value.

getConfigProperty

public java.lang.String getConfigProperty(java.lang.String key,
                                          java.lang.String defaultValue)
Returns the configuration property with the specified key (or the specified default value if there is no such property).

If the property is not defined in this configuration, the code will lookup the property in the parent configuration.

Specified by:
getConfigProperty in interface Configuration
Parameters:
key - the property key.
defaultValue - the default value.
Returns:
the property value.

setConfigProperty

public void setConfigProperty(java.lang.String key,
                              java.lang.String value)
Sets a parser configuration value.

Parameters:
key - the key.
value - the value.

setHelperObject

public void setHelperObject(java.lang.String key,
                            java.lang.Object value)

getHelperObject

public java.lang.Object getHelperObject(java.lang.String key)

getInstance

public abstract Parser getInstance()
Returns a new instance of the parser.

Returns:
a new instance of the parser.

getResult

public abstract java.lang.Object getResult()
Returns the parsed result object after the parsing is complete. Calling this function during the parsing is undefined and may result in an IllegalStateException.

Returns:
the parsed result.