//SAX parser factory.
//http://www.saxproject.org
//No warranty; no copyright -- use this as you will.
//$Id: ParserFactory.java 670295 2008-06-22 01:46:43Z mrglavas $
package org.xml.sax.helpers;
import org.xml.sax.Parser;
Java-specific class for dynamically loading SAX parsers.
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.
Note: This class is designed to work with the now-deprecated SAX1 Parser
class. SAX2 applications should use XMLReaderFactory
instead.
ParserFactory is not part of the platform-independent definition
of SAX; it is an additional convenience class designed
specifically for Java XML application writers. SAX applications
can use the static methods in this class to allocate a SAX parser
dynamically at run-time based either on the value of the
`org.xml.sax.parser' system property or on a string containing the class
name.
Note that the application still requires an XML parser that
implements SAX1.
Author: David Megginson Deprecated: This class works with the deprecated Parser
interface. Since: SAX 1.0 Version: 2.0.1 (sax2r2)
/**
* Java-specific class for dynamically loading SAX parsers.
*
* <blockquote>
* <em>This module, both source code and documentation, is in the
* Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
* See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
* for further information.
* </blockquote>
*
* <p><strong>Note:</strong> This class is designed to work with the now-deprecated
* SAX1 {@link org.xml.sax.Parser Parser} class. SAX2 applications should use
* {@link org.xml.sax.helpers.XMLReaderFactory XMLReaderFactory} instead.</p>
*
* <p>ParserFactory is not part of the platform-independent definition
* of SAX; it is an additional convenience class designed
* specifically for Java XML application writers. SAX applications
* can use the static methods in this class to allocate a SAX parser
* dynamically at run-time based either on the value of the
* `org.xml.sax.parser' system property or on a string containing the class
* name.</p>
*
* <p>Note that the application still requires an XML parser that
* implements SAX1.</p>
*
* @deprecated This class works with the deprecated
* {@link org.xml.sax.Parser Parser}
* interface.
* @since SAX 1.0
* @author David Megginson
* @version 2.0.1 (sax2r2)
*/
public class ParserFactory {
Private null constructor.
/**
* Private null constructor.
*/
private ParserFactory ()
{
}
Create a new SAX parser using the `org.xml.sax.parser' system property.
The named class must exist and must implement the Parser
interface.
Throws: - NullPointerException – There is no value
for the `org.xml.sax.parser' system property.
- ClassNotFoundException – The SAX parser
class was not found (check your CLASSPATH).
- IllegalAccessException – The SAX parser class was
found, but you do not have permission to load
it.
- InstantiationException – The SAX parser class was
found but could not be instantiated.
- ClassCastException – The SAX parser class
was found and instantiated, but does not implement
org.xml.sax.Parser.
See Also:
/**
* Create a new SAX parser using the `org.xml.sax.parser' system property.
*
* <p>The named class must exist and must implement the
* {@link org.xml.sax.Parser Parser} interface.</p>
*
* @exception java.lang.NullPointerException There is no value
* for the `org.xml.sax.parser' system property.
* @exception java.lang.ClassNotFoundException The SAX parser
* class was not found (check your CLASSPATH).
* @exception IllegalAccessException The SAX parser class was
* found, but you do not have permission to load
* it.
* @exception InstantiationException The SAX parser class was
* found but could not be instantiated.
* @exception java.lang.ClassCastException The SAX parser class
* was found and instantiated, but does not implement
* org.xml.sax.Parser.
* @see #makeParser(java.lang.String)
* @see org.xml.sax.Parser
*/
public static Parser makeParser ()
throws ClassNotFoundException,
IllegalAccessException,
InstantiationException,
NullPointerException,
ClassCastException
{
String className = SecuritySupport.getSystemProperty("org.xml.sax.parser");
if (className == null) {
throw new NullPointerException("No value for sax.parser property");
} else {
return makeParser(className);
}
}
Create a new SAX parser object using the class name provided.
The named class must exist and must implement the Parser
interface.
Params: - className – A string containing the name of the
SAX parser class.
Throws: - ClassNotFoundException – The SAX parser
class was not found (check your CLASSPATH).
- IllegalAccessException – The SAX parser class was
found, but you do not have permission to load
it.
- InstantiationException – The SAX parser class was
found but could not be instantiated.
- ClassCastException – The SAX parser class
was found and instantiated, but does not implement
org.xml.sax.Parser.
See Also:
/**
* Create a new SAX parser object using the class name provided.
*
* <p>The named class must exist and must implement the
* {@link org.xml.sax.Parser Parser} interface.</p>
*
* @param className A string containing the name of the
* SAX parser class.
* @exception java.lang.ClassNotFoundException The SAX parser
* class was not found (check your CLASSPATH).
* @exception IllegalAccessException The SAX parser class was
* found, but you do not have permission to load
* it.
* @exception InstantiationException The SAX parser class was
* found but could not be instantiated.
* @exception java.lang.ClassCastException The SAX parser class
* was found and instantiated, but does not implement
* org.xml.sax.Parser.
* @see #makeParser()
* @see org.xml.sax.Parser
*/
public static Parser makeParser (String className)
throws ClassNotFoundException,
IllegalAccessException,
InstantiationException,
ClassCastException
{
return (Parser) NewInstance.newInstance (
NewInstance.getClassLoader (), className);
}
}