Add some org packages.
From-SVN: r43922
This commit is contained in:
parent
608fe35b1a
commit
9556f88777
57 changed files with 12772 additions and 53 deletions
136
libjava/org/xml/sax/helpers/XMLReaderFactory.java
Normal file
136
libjava/org/xml/sax/helpers/XMLReaderFactory.java
Normal file
|
@ -0,0 +1,136 @@
|
|||
// XMLReaderFactory.java - factory for creating a new reader.
|
||||
// Written by David Megginson, sax@megginson.com
|
||||
// NO WARRANTY! This class is in the Public Domain.
|
||||
|
||||
// $Id: XMLReaderFactory.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
|
||||
|
||||
package org.xml.sax.helpers;
|
||||
import org.xml.sax.Parser;
|
||||
import org.xml.sax.XMLReader;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
|
||||
/**
|
||||
* Factory for creating an XML reader.
|
||||
*
|
||||
* <blockquote>
|
||||
* <em>This module, both source code and documentation, is in the
|
||||
* Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
|
||||
* </blockquote>
|
||||
*
|
||||
* <p>This class contains static methods for creating an XML reader
|
||||
* from an explicit class name, or for creating an XML reader based
|
||||
* on the value of the <code>org.xml.sax.driver</code> system
|
||||
* property:</p>
|
||||
*
|
||||
* <pre>
|
||||
* try {
|
||||
* XMLReader myReader = XMLReaderFactory.createXMLReader();
|
||||
* } catch (SAXException e) {
|
||||
* System.err.println(e.getMessage());
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* <p>Note that these methods will not be usable in environments where
|
||||
* system properties are not accessible or where the application or
|
||||
* applet is not permitted to load classes dynamically.</p>
|
||||
*
|
||||
* <p><strong>Note to implementors:</strong> SAX implementations in specialized
|
||||
* environments may replace this class with a different one optimized for the
|
||||
* environment, as long as its method signatures remain the same.</p>
|
||||
*
|
||||
* @since SAX 2.0
|
||||
* @author David Megginson,
|
||||
* <a href="mailto:sax@megginson.com">sax@megginson.com</a>
|
||||
* @version 2.0
|
||||
* @see org.xml.sax.XMLReader
|
||||
*/
|
||||
final public class XMLReaderFactory
|
||||
{
|
||||
|
||||
/**
|
||||
* Private constructor.
|
||||
*
|
||||
* <p>This constructor prevents the class from being instantiated.</p>
|
||||
*/
|
||||
private XMLReaderFactory ()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Attempt to create an XML reader from a system property.
|
||||
*
|
||||
* <p>This method uses the value of the system property
|
||||
* "org.xml.sax.driver" as the full name of a Java class
|
||||
* and tries to instantiate that class as a SAX2
|
||||
* XMLReader.</p>
|
||||
*
|
||||
* <p>Note that many Java interpreters allow system properties
|
||||
* to be specified on the command line.</p>
|
||||
*
|
||||
* @return A new XMLReader.
|
||||
* @exception org.xml.sax.SAXException If the value of the
|
||||
* "org.xml.sax.driver" system property is null,
|
||||
* or if the class cannot be loaded and instantiated.
|
||||
* @see #createXMLReader(java.lang.String)
|
||||
*/
|
||||
public static XMLReader createXMLReader ()
|
||||
throws SAXException
|
||||
{
|
||||
String className = System.getProperty("org.xml.sax.driver");
|
||||
if (className == null) {
|
||||
Parser parser;
|
||||
try {
|
||||
parser = ParserFactory.makeParser();
|
||||
} catch (Exception e) {
|
||||
parser = null;
|
||||
}
|
||||
if (parser == null) {
|
||||
throw new
|
||||
SAXException("System property org.xml.sax.driver not specified");
|
||||
} else {
|
||||
return new ParserAdapter(parser);
|
||||
}
|
||||
} else {
|
||||
return createXMLReader(className);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Attempt to create an XML reader from a class name.
|
||||
*
|
||||
* <p>Given a class name, this method attempts to load
|
||||
* and instantiate the class as an XML reader.</p>
|
||||
*
|
||||
* @return A new XML reader.
|
||||
* @exception org.xml.sax.SAXException If the class cannot be
|
||||
* loaded, instantiated, and cast to XMLReader.
|
||||
* @see #createXMLReader()
|
||||
*/
|
||||
public static XMLReader createXMLReader (String className)
|
||||
throws SAXException
|
||||
{
|
||||
try {
|
||||
return (XMLReader)(Class.forName(className).newInstance());
|
||||
} catch (ClassNotFoundException e1) {
|
||||
throw new SAXException("SAX2 driver class " + className +
|
||||
" not found", e1);
|
||||
} catch (IllegalAccessException e2) {
|
||||
throw new SAXException("SAX2 driver class " + className +
|
||||
" found but cannot be loaded", e2);
|
||||
} catch (InstantiationException e3) {
|
||||
throw new SAXException("SAX2 driver class " + className +
|
||||
" loaded but cannot be instantiated (no empty public constructor?)",
|
||||
e3);
|
||||
} catch (ClassCastException e4) {
|
||||
throw new SAXException("SAX2 driver class " + className +
|
||||
" does not implement XMLReader", e4);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// end of XMLReaderFactory.java
|
Loading…
Add table
Add a link
Reference in a new issue