diff options
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | gnu/xml/stream/FilteredStreamReader.java | 4 | ||||
-rw-r--r-- | gnu/xml/stream/NamespaceImpl.java | 29 | ||||
-rw-r--r-- | gnu/xml/stream/XIncludeFilter.java | 4 | ||||
-rw-r--r-- | gnu/xml/stream/XMLEventAllocatorImpl.java | 6 | ||||
-rw-r--r-- | gnu/xml/stream/XMLEventFactoryImpl.java | 6 | ||||
-rw-r--r-- | javax/xml/stream/XMLEventFactory.java | 10 | ||||
-rw-r--r-- | javax/xml/stream/XMLInputFactory.java | 7 | ||||
-rw-r--r-- | javax/xml/stream/XMLOutputFactory.java | 46 | ||||
-rw-r--r-- | javax/xml/stream/events/Namespace.java | 2 | ||||
-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
@@ -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; } |