org.jfree.xml

## Class ParserFrontend

- java.lang.Object
- - org.jfree.xml.ParserFrontend

    public class ParserFrontend
    extends java.lang.Object

The reportgenerator initializes the parser and provides an interface the the default parser. To create a report from an URL, use `ReportGenerator.getInstance().parseReport (URL myURl, URL contentBase);`

Author:
  Thomas Morgner

### Constructor Summary

Constructors
`protected` `ParserFrontend(FrontendDefaultHandler parser)` Creates a new report generator.

### Method Summary

Methods
`protected void` `configureReader(org.xml.sax.XMLReader reader, FrontendDefaultHandler handler)` Configures the xml reader.
`protected FrontendDefaultHandler` `createDefaultHandler(java.net.URL contentBase)` Creates a new instance of the currently set default handler and sets the contentbase for the handler to `contentBase`.
`FrontendDefaultHandler` `getDefaultHandler()` Returns the ElementDefinitionHandler used for parsing reports.
`org.xml.sax.EntityResolver` `getEntityResolver()` Returns the entity resolver.
`protected javax.xml.parsers.SAXParser` `getParser()` Returns a SAX parser.
`boolean` `isValidateDTD()` Returns `true` if the report definition should be validated against the DTD, and `false` otherwise.
`protected java.lang.Object` `parse(org.xml.sax.InputSource input, java.net.URL contentBase)` Parses an XML report template file.
`java.lang.Object` `parse(java.net.URL file, java.net.URL contentBase)` Parses an XML file which is loaded using the given URL.
`void` `setDefaultHandler(FrontendDefaultHandler handler)` Sets the default handler used for parsing reports.
`void` `setEntityResolver(org.xml.sax.EntityResolver entityResolver)` Sets the entity resolver.
`void` `setValidateDTD(boolean validateDTD)` Sets a flag that controls whether or not the report definition is validated against the DTD.

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

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

### Constructor Detail

#### ParserFrontend

    protected ParserFrontend(FrontendDefaultHandler parser)

Creates a new report generator. The generator uses the singleton pattern by default, so use generator.getInstance() to get the generator.

Parameters:
  `parser` - the parser that is used to coordinate the parsing process.

### Method Detail

#### isValidateDTD

    public boolean isValidateDTD()

Returns `true` if the report definition should be validated against the DTD, and `false` otherwise.

Returns:
  A boolean.

#### setValidateDTD

    public void setValidateDTD(boolean validateDTD)

Sets a flag that controls whether or not the report definition is validated against the DTD.

Parameters:
  `validateDTD` - the flag.

#### getEntityResolver

    public org.xml.sax.EntityResolver getEntityResolver()

Returns the entity resolver.

Returns:
  The entity resolver.

#### setEntityResolver

    public void setEntityResolver(org.xml.sax.EntityResolver entityResolver)

Sets the entity resolver.

Parameters:
  `entityResolver` - the entity resolver.

#### getParser

    protected javax.xml.parsers.SAXParser getParser()
                                             throws javax.xml.parsers.ParserConfigurationException,
                                                    org.xml.sax.SAXException

Returns a SAX parser.

Returns:
  a SAXParser.
Throws:
  `javax.xml.parsers.ParserConfigurationException` - if there is a problem configuring the parser.
  `org.xml.sax.SAXException` - if there is a problem with the parser initialisation

#### setDefaultHandler

    public void setDefaultHandler(FrontendDefaultHandler handler)

Sets the default handler used for parsing reports. This handler is used to initiate parsing.

Parameters:
  `handler` - the handler.

#### getDefaultHandler

    public FrontendDefaultHandler getDefaultHandler()

Returns the ElementDefinitionHandler used for parsing reports.

Returns:
  the report handler.

#### createDefaultHandler

    protected FrontendDefaultHandler createDefaultHandler(java.net.URL contentBase)

Creates a new instance of the currently set default handler and sets the contentbase for the handler to `contentBase`.

Parameters:
  `contentBase` - the content base.
Returns:
  the report handler.

#### parse

    protected java.lang.Object parse(org.xml.sax.InputSource input,
                         java.net.URL contentBase)
                              throws ElementDefinitionException

Parses an XML report template file.

Parameters:
  `input` - the input source.
  `contentBase` - the content base.
Returns:
  the report.
Throws:
  `ElementDefinitionException` - if an error occurred.

#### configureReader

    protected void configureReader(org.xml.sax.XMLReader reader,
                       FrontendDefaultHandler handler)

Configures the xml reader. Use this to set features or properties before the documents get parsed.

Parameters:
  `handler` - the parser implementation that will handle the SAX-Callbacks.
  `reader` - the xml reader that should be configured.

#### parse

    public java.lang.Object parse(java.net.URL file,
                         java.net.URL contentBase)
                           throws ElementDefinitionException,
                                  java.io.IOException

Parses an XML file which is loaded using the given URL. All needed relative file- and resourcespecification are loaded using the URL `contentBase` as base.

After the report is generated, the ReportDefinition-source and the contentbase are stored as string in the reportproperties.

Parameters:
  `file` - the URL for the report template file.
  `contentBase` - the URL for the report template content base.
Returns:
  the parsed report.
Throws:
  `java.io.IOException` - if an I/O error occurs.
  `ElementDefinitionException` - if there is a problem parsing the report template.