summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Burdess <dog@bluezoo.org>2009-07-08 07:53:26 +0000
committerChris Burdess <dog@bluezoo.org>2009-07-08 07:53:26 +0000
commit2229457f8b632b6046c47c1cd6919dd2a32e730f (patch)
tree80d3ffee9bf11e316e0898ebde835d410ad46404
parent7e8b44e1c203d4549722e2cc6c40d600f809bce9 (diff)
downloadclasspath-2229457f8b632b6046c47c1cd6919dd2a32e730f.tar.gz
2009-07-08 Chris Burdess <dog@gnu.org>
PR xml/40663: * javax/xml/stream/XMLEventFactory.java, * javax/xml/stream/XMLInputFactory.java, * javax/xml/stream/XMLOutputFactory.java, * javax/xml/stream/events/Namespace.java: Update API to match final version of StAX. * javax/xml/stream/util/ReaderDelegate.java: Removed. * javax/xml/stream/util/StreamReaderDelegate.java: Added (renamed from ReaderDelegate) * gnu/xml/stream/FilteredStreamReader.java, * gnu/xml/stream/NamespaceImpl.java, * gnu/xml/stream/XIncludeFilter.java, * gnu/xml/stream/XMLEventAllocatorImpl.java, * gnu/xml/stream/XMLEventFactoryImpl.java: Update implementation to match final version of StAX API.
-rw-r--r--ChangeLog18
-rw-r--r--gnu/xml/stream/FilteredStreamReader.java4
-rw-r--r--gnu/xml/stream/NamespaceImpl.java29
-rw-r--r--gnu/xml/stream/XIncludeFilter.java4
-rw-r--r--gnu/xml/stream/XMLEventAllocatorImpl.java6
-rw-r--r--gnu/xml/stream/XMLEventFactoryImpl.java6
-rw-r--r--javax/xml/stream/XMLEventFactory.java10
-rw-r--r--javax/xml/stream/XMLInputFactory.java7
-rw-r--r--javax/xml/stream/XMLOutputFactory.java46
-rw-r--r--javax/xml/stream/events/Namespace.java2
-rw-r--r--javax/xml/stream/util/StreamReaderDelegate.java (renamed from javax/xml/stream/util/ReaderDelegate.java)10
11 files changed, 105 insertions, 37 deletions
diff --git a/ChangeLog b/ChangeLog
index 6326ce050..89f90974a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2009-07-08 Chris Burdess <dog@gnu.org>
+
+ PR xml/40663:
+ * javax/xml/stream/XMLEventFactory.java,
+ * javax/xml/stream/XMLInputFactory.java,
+ * javax/xml/stream/XMLOutputFactory.java,
+ * javax/xml/stream/events/Namespace.java: Update API to match final
+ version of StAX.
+ * javax/xml/stream/util/ReaderDelegate.java: Removed.
+ * javax/xml/stream/util/StreamReaderDelegate.java: Added (renamed
+ from ReaderDelegate)
+ * gnu/xml/stream/FilteredStreamReader.java,
+ * gnu/xml/stream/NamespaceImpl.java,
+ * gnu/xml/stream/XIncludeFilter.java,
+ * gnu/xml/stream/XMLEventAllocatorImpl.java,
+ * gnu/xml/stream/XMLEventFactoryImpl.java: Update implementation to
+ match final version of StAX API.
+
2009-07-06 Ludovic Claude <ludovic.claude@laposte.net>
PR xml/40653:
diff --git a/gnu/xml/stream/FilteredStreamReader.java b/gnu/xml/stream/FilteredStreamReader.java
index 1db02f6e3..90ebb330d 100644
--- a/gnu/xml/stream/FilteredStreamReader.java
+++ b/gnu/xml/stream/FilteredStreamReader.java
@@ -40,10 +40,10 @@ package gnu.xml.stream;
import javax.xml.stream.StreamFilter;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.util.ReaderDelegate;
+import javax.xml.stream.util.StreamReaderDelegate;
class FilteredStreamReader
- extends ReaderDelegate
+ extends StreamReaderDelegate
{
final XMLStreamReader reader;
diff --git a/gnu/xml/stream/NamespaceImpl.java b/gnu/xml/stream/NamespaceImpl.java
index eeb57be6c..1a595ee83 100644
--- a/gnu/xml/stream/NamespaceImpl.java
+++ b/gnu/xml/stream/NamespaceImpl.java
@@ -39,6 +39,7 @@ package gnu.xml.stream;
import java.io.IOException;
import java.io.Writer;
+import javax.xml.namespace.QName;
import javax.xml.stream.Location;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.Namespace;
@@ -55,12 +56,15 @@ public class NamespaceImpl
protected final String prefix;
protected final String uri;
+ protected final boolean specified;
- protected NamespaceImpl(Location location, String prefix, String uri)
+ protected NamespaceImpl(Location location, String prefix, String uri,
+ boolean specified)
{
super(location);
this.prefix = prefix;
this.uri = uri;
+ this.specified = specified;
}
public int getEventType()
@@ -78,6 +82,29 @@ public class NamespaceImpl
return uri;
}
+ public boolean isSpecified()
+ {
+ return specified;
+ }
+
+ public QName getName()
+ {
+ if (isDefaultNamespaceDeclaration())
+ return new QName("", "xmlns", null);
+ else
+ return new QName("", prefix, "xmlns");
+ }
+
+ public String getDTDType()
+ {
+ return "CDATA";
+ }
+
+ public String getValue()
+ {
+ return uri;
+ }
+
public boolean isDefaultNamespaceDeclaration()
{
return (prefix == null || "".equals(prefix));
diff --git a/gnu/xml/stream/XIncludeFilter.java b/gnu/xml/stream/XIncludeFilter.java
index d5c4af12c..aed9d9a0f 100644
--- a/gnu/xml/stream/XIncludeFilter.java
+++ b/gnu/xml/stream/XIncludeFilter.java
@@ -54,7 +54,7 @@ import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.util.ReaderDelegate;
+import javax.xml.stream.util.StreamReaderDelegate;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
@@ -81,7 +81,7 @@ import org.xml.sax.SAXException;
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
class XIncludeFilter
- extends ReaderDelegate
+ extends StreamReaderDelegate
{
static final String XINCLUDE_NS_URI = "http://www.w3.org/2001/XInclude";
diff --git a/gnu/xml/stream/XMLEventAllocatorImpl.java b/gnu/xml/stream/XMLEventAllocatorImpl.java
index fb1e4c28c..dd2b18c94 100644
--- a/gnu/xml/stream/XMLEventAllocatorImpl.java
+++ b/gnu/xml/stream/XMLEventAllocatorImpl.java
@@ -110,7 +110,8 @@ public class XMLEventAllocatorImpl
for (int i = 0; i < len; i++)
namespaces.add(new NamespaceImpl(location,
reader.getNamespacePrefix(i),
- reader.getNamespaceURI(i)));
+ reader.getNamespaceURI(i),
+ false));
return new EndElementImpl(location,
reader.getName(),
namespaces);
@@ -158,7 +159,8 @@ public class XMLEventAllocatorImpl
for (int i = 0; i < len; i++)
namespaces.add(new NamespaceImpl(location,
reader.getNamespacePrefix(i),
- reader.getNamespaceURI(i)));
+ reader.getNamespaceURI(i),
+ false));
len = reader.getAttributeCount();
List attributes = new LinkedList();
for (int i = 0; i < len; i++)
diff --git a/gnu/xml/stream/XMLEventFactoryImpl.java b/gnu/xml/stream/XMLEventFactoryImpl.java
index f694753c4..5ca1aab7c 100644
--- a/gnu/xml/stream/XMLEventFactoryImpl.java
+++ b/gnu/xml/stream/XMLEventFactoryImpl.java
@@ -98,12 +98,14 @@ public class XMLEventFactoryImpl
public Namespace createNamespace(String namespaceURI)
{
return new NamespaceImpl(location,
- XMLConstants.DEFAULT_NS_PREFIX, namespaceURI);
+ XMLConstants.DEFAULT_NS_PREFIX,
+ namespaceURI,
+ true);
}
public Namespace createNamespace(String prefix, String namespaceUri)
{
- return new NamespaceImpl(location, prefix, namespaceUri);
+ return new NamespaceImpl(location, prefix, namespaceUri, true);
}
public StartElement createStartElement(QName name,
diff --git a/javax/xml/stream/XMLEventFactory.java b/javax/xml/stream/XMLEventFactory.java
index 30e160793..7e7a98140 100644
--- a/javax/xml/stream/XMLEventFactory.java
+++ b/javax/xml/stream/XMLEventFactory.java
@@ -1,5 +1,5 @@
/* XMLEventFactory.java --
- Copyright (C) 2005,2006 Free Software Foundation, Inc.
+ Copyright (C) 2005,2006,2009 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -94,8 +94,14 @@ public abstract class XMLEventFactory
* system resource</li>
* <li>the default factory class</li>
* </ol>
+ * @param factoryId name of the factory to find, same as a property name
+ * @param classLoader the class loader to use
+ * @return the factory implementation
+ * @exception FactoryConfigurationError if an instance of this factory
+ * cannot be loaded
*/
- static XMLEventFactory newInstance(String factoryId, ClassLoader classLoader)
+ public static XMLEventFactory newInstance(String factoryId,
+ ClassLoader classLoader)
throws FactoryConfigurationError
{
ClassLoader loader = classLoader;
diff --git a/javax/xml/stream/XMLInputFactory.java b/javax/xml/stream/XMLInputFactory.java
index 437bf83b5..e57449d77 100644
--- a/javax/xml/stream/XMLInputFactory.java
+++ b/javax/xml/stream/XMLInputFactory.java
@@ -1,5 +1,5 @@
/* XMLInputFactory.java --
- Copyright (C) 2005,2006 Free Software Foundation, Inc.
+ Copyright (C) 2005,2006,2009 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -206,6 +206,11 @@ public abstract class XMLInputFactory
* system resource</li>
* <li>the default factory class</li>
* </ol>
+ * @param factoryId name of the factory, same as a property name
+ * @param classLoader the class loader to use
+ * @return the factory implementation
+ * @exception FactoryConfigurationError if an instance of this factory
+ * cannot be loaded
*/
public static XMLInputFactory newInstance(String factoryId,
ClassLoader classLoader)
diff --git a/javax/xml/stream/XMLOutputFactory.java b/javax/xml/stream/XMLOutputFactory.java
index 908f84f26..ef89b6497 100644
--- a/javax/xml/stream/XMLOutputFactory.java
+++ b/javax/xml/stream/XMLOutputFactory.java
@@ -1,5 +1,5 @@
/* XMLOutputFactory.java --
- Copyright (C) 2005,2006 Free Software Foundation, Inc.
+ Copyright (C) 2005,2006,2009 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -86,6 +86,16 @@ public abstract class XMLOutputFactory
/**
* Creates a new <b>output</b> factory.
+ * @see #newInstance(String,ClassLoader)
+ */
+ public static XMLOutputFactory newInstance()
+ throws FactoryConfigurationError
+ {
+ return newInstance(null, null);
+ }
+
+ /**
+ * Creates a new <b>output</b> factory.
* The implementation class to load is the first found in the following
* locations:
* <ol>
@@ -98,25 +108,35 @@ public abstract class XMLOutputFactory
* system resource</li>
* <li>the default factory class</li>
* </ol>
+ * @param factoryId the name of the factory, same as the property
+ * @param classLoader the class loader to use
+ * @return a new factory instance
+ * @exception FactoryConfigurationError if an instance of this factory
+ * could not be loaded
*/
- public static XMLOutputFactory newInstance()
+ public static XMLOutputFactory newInstance(String factoryId,
+ ClassLoader classLoader)
throws FactoryConfigurationError
{
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
- if (loader == null)
+ if (classLoader == null)
{
- loader = XMLOutputFactory.class.getClassLoader();
+ classLoader = Thread.currentThread().getContextClassLoader();
+ }
+ if (classLoader == null)
+ {
+ classLoader = XMLOutputFactory.class.getClassLoader();
}
String className = null;
int count = 0;
do
{
- className = getFactoryClassName(loader, count++);
+ className = getFactoryClassName(classLoader, count++);
if (className != null)
{
try
{
- Class<?> t = (loader != null) ? loader.loadClass(className) :
+ Class<?> t = (classLoader != null) ?
+ classLoader.loadClass(className) :
Class.forName(className);
return (XMLOutputFactory) t.newInstance();
}
@@ -184,18 +204,6 @@ public abstract class XMLOutputFactory
}
/**
- * Creates a new <b>input</b> factory.
- * This appears to be an API design bug.
- * @see javax.xml.stream.XMLInputFactory.newInstance(String,ClassLoader)
- */
- public static XMLInputFactory newInstance(String factoryId,
- ClassLoader classLoader)
- throws FactoryConfigurationError
- {
- return XMLInputFactory.newInstance(factoryId, classLoader);
- }
-
- /**
* Creates a new stream writer.
*/
public abstract XMLStreamWriter createXMLStreamWriter(Writer stream)
diff --git a/javax/xml/stream/events/Namespace.java b/javax/xml/stream/events/Namespace.java
index 227543215..13dd92fda 100644
--- a/javax/xml/stream/events/Namespace.java
+++ b/javax/xml/stream/events/Namespace.java
@@ -41,7 +41,7 @@ package javax.xml.stream.events;
* A namespace declaration event.
*/
public interface Namespace
- extends XMLEvent
+ extends Attribute
{
/**
diff --git a/javax/xml/stream/util/ReaderDelegate.java b/javax/xml/stream/util/StreamReaderDelegate.java
index d502866fb..1c407a245 100644
--- a/javax/xml/stream/util/ReaderDelegate.java
+++ b/javax/xml/stream/util/StreamReaderDelegate.java
@@ -1,5 +1,5 @@
-/* ReaderDelegate.java --
- Copyright (C) 2005,2006 Free Software Foundation, Inc.
+/* StreamReaderDelegate.java --
+ Copyright (C) 2005,2006,2009 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import javax.xml.stream.XMLStreamReader;
/**
* Base class for XML stream reader filters.
*/
-public class ReaderDelegate
+public class StreamReaderDelegate
implements XMLStreamReader, XMLStreamConstants
{
@@ -56,14 +56,14 @@ public class ReaderDelegate
/**
* Constructs an empty filter with no parent set.
*/
- public ReaderDelegate()
+ public StreamReaderDelegate()
{
}
/**
* Constructs an empty filter with the specfied parent.
*/
- public ReaderDelegate(XMLStreamReader reader)
+ public StreamReaderDelegate(XMLStreamReader reader)
{
parent = reader;
}