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
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ParserFrontend(FrontendDefaultHandler parser)` Creates a new report generator.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.