Commit acdf61e1 by Tom Tromey

Reverted erroneous commit

From-SVN: r96966
parent 5fb0e509
......@@ -60,38 +60,35 @@ import javax.xml.parsers.SAXParserFactory;
*
* @author David Brownell
*/
public final class JAXPFactory
extends SAXParserFactory
public final class JAXPFactory extends SAXParserFactory
{
private Hashtable flags = new Hashtable();
private Hashtable flags = new Hashtable ();
/**
* Constructs a factory which normally returns a non-validating
* parser.
*/
public JAXPFactory()
{
}
public JAXPFactory () { }
public SAXParser newSAXParser()
public SAXParser newSAXParser ()
throws ParserConfigurationException, SAXException
{
JaxpParser jaxp = new JaxpParser();
Enumeration e = flags.keys();
XMLReader parser = jaxp.getXMLReader();
parser.setFeature(SAXDriver.FEATURE + "namespaces",
isNamespaceAware());
parser.setFeature(SAXDriver.FEATURE + "validation",
isValidating());
JaxpParser jaxp = new JaxpParser ();
Enumeration e = flags.keys ();
XMLReader parser = jaxp.getXMLReader ();
parser.setFeature (
SAXDriver.FEATURE + "namespaces",
isNamespaceAware ());
parser.setFeature (
SAXDriver.FEATURE + "validation",
isValidating ());
// that makes SAX2 feature flags trump JAXP
while (e.hasMoreElements())
{
String uri = (String) e.nextElement();
Boolean value = (Boolean) flags.get(uri);
parser.setFeature(uri, value.booleanValue());
while (e.hasMoreElements ()) {
String uri = (String) e.nextElement ();
Boolean value = (Boolean) flags.get (uri);
parser.setFeature (uri, value.booleanValue ());
}
return jaxp;
......@@ -99,133 +96,101 @@ public final class JAXPFactory
// yes, this "feature transfer" mechanism doesn't play well
public void setFeature(String name, boolean value)
throws ParserConfigurationException, SAXNotRecognizedException,
public void setFeature (String name, boolean value)
throws
ParserConfigurationException,
SAXNotRecognizedException,
SAXNotSupportedException
{
try
{
try {
// force "early" detection of errors where possible
// (flags can't necessarily be set before parsing)
new JaxpParser().getXMLReader().setFeature(name, value);
flags.put(name, new Boolean(value));
}
catch (SAXNotRecognizedException e)
{
throw new SAXNotRecognizedException(name);
}
catch (SAXNotSupportedException e)
{
throw new SAXNotSupportedException(name);
}
catch (Exception e)
{
throw new ParserConfigurationException(e.getClass().getName()
new JaxpParser ().getXMLReader ().setFeature (name, value);
flags.put (name, new Boolean (value));
} catch (SAXNotRecognizedException e) {
throw new SAXNotRecognizedException (name);
} catch (SAXNotSupportedException e) {
throw new SAXNotSupportedException (name);
} catch (Exception e) {
throw new ParserConfigurationException (
e.getClass ().getName ()
+ ": "
+ e.getMessage());
+ e.getMessage ());
}
}
public boolean getFeature(String name)
throws ParserConfigurationException, SAXNotRecognizedException,
public boolean getFeature (String name)
throws
ParserConfigurationException,
SAXNotRecognizedException,
SAXNotSupportedException
{
Boolean value = (Boolean) flags.get(name);
Boolean value = (Boolean) flags.get (name);
if (value != null)
{
return value.booleanValue();
}
return value.booleanValue ();
else
{
try
{
return new JaxpParser().getXMLReader().getFeature(name);
}
catch (SAXNotRecognizedException e)
{
throw new SAXNotRecognizedException(name);
}
catch (SAXNotSupportedException e)
{
throw new SAXNotSupportedException(name);
}
catch (SAXException e)
{
throw new ParserConfigurationException(e.getClass().getName()
try {
return new JaxpParser ().getXMLReader ().getFeature (name);
} catch (SAXNotRecognizedException e) {
throw new SAXNotRecognizedException (name);
} catch (SAXNotSupportedException e) {
throw new SAXNotSupportedException (name);
} catch (SAXException e) {
throw new ParserConfigurationException (
e.getClass ().getName ()
+ ": "
+ e.getMessage());
}
+ e.getMessage ());
}
}
private static class JaxpParser
extends SAXParser
private static class JaxpParser extends SAXParser
{
private XmlReader ae2 = new XmlReader();
private XmlReader ae2 = new XmlReader ();
private XMLReaderAdapter parser = null;
JaxpParser()
{
}
JaxpParser () { }
public void setProperty(String id, Object value)
public void setProperty (String id, Object value)
throws SAXNotRecognizedException, SAXNotSupportedException
{
ae2.setProperty(id, value);
}
{ ae2.setProperty (id, value); }
public Object getProperty(String id)
public Object getProperty (String id)
throws SAXNotRecognizedException, SAXNotSupportedException
{
return ae2.getProperty(id);
}
{ return ae2.getProperty (id); }
public Parser getParser()
public Parser getParser ()
throws SAXException
{
if (parser == null)
{
parser = new XMLReaderAdapter(ae2);
}
parser = new XMLReaderAdapter (ae2);
return parser;
}
public XMLReader getXMLReader ()
throws SAXException
{
return ae2;
}
{ return ae2; }
public boolean isNamespaceAware()
{
try
{
return ae2.getFeature(SAXDriver.FEATURE + "namespaces");
}
catch (Exception e)
public boolean isNamespaceAware ()
{
throw new Error();
try {
return ae2.getFeature (SAXDriver.FEATURE + "namespaces");
} catch (Exception e) {
throw new Error ();
}
}
public boolean isValidating()
public boolean isValidating ()
{
try
{
return ae2.getFeature(SAXDriver.FEATURE + "validation");
}
catch (Exception e)
{
throw new Error();
try {
return ae2.getFeature (SAXDriver.FEATURE + "validation");
} catch (Exception e) {
throw new Error ();
}
}
// TODO isXIncludeAware()
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment