You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2008/12/31 07:15:43 UTC
svn commit: r730318 - in
/xerces/java/branches/stax-dev/src/org/apache/xerces/stax: ./ events/
Author: mrglavas
Date: Tue Dec 30 22:15:42 2008
New Revision: 730318
URL: http://svn.apache.org/viewvc?rev=730318&view=rev
Log:
Lots of work on the StAX events, including an implementation of XMLEventFactory.
Added:
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/ElementImpl.java (with props)
Modified:
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/DefaultEventAllocator.java
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/XMLEventFactoryImpl.java
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/CharactersImpl.java
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/DTDImpl.java
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EndDocumentImpl.java
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EndElementImpl.java
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EntityReferenceImpl.java
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/StartElementImpl.java
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/XMLEventImpl.java
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/DefaultEventAllocator.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/DefaultEventAllocator.java?rev=730318&r1=730317&r2=730318&view=diff
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/DefaultEventAllocator.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/DefaultEventAllocator.java Tue Dec 30 22:15:42 2008
@@ -73,9 +73,9 @@
//in turn at index 0.
return makeAttribute(0, reader);
case XMLStreamConstants.CDATA:
- return new CharactersImpl(reader.getText(), false, true, false, location);
+ return new CharactersImpl(reader.getText(), XMLStreamConstants.CDATA, location);
case XMLStreamConstants.CHARACTERS:
- return new CharactersImpl(reader.getText(), false, false, false, location);
+ return new CharactersImpl(reader.getText(), XMLStreamConstants.CHARACTERS, location);
case XMLStreamConstants.COMMENT:
return new CommentImpl(reader.getText(), location);
case XMLStreamConstants.DTD:
@@ -97,7 +97,7 @@
return new ProcessingInstructionImpl(reader.getPITarget(), reader.getPIData(), location);
case XMLStreamConstants.SPACE:
//TODO: Ignorable Whitespace
- return new CharactersImpl(reader.getText(), true, false, false, location);
+ return new CharactersImpl(reader.getText(), XMLStreamConstants.SPACE, location);
case XMLStreamConstants.START_DOCUMENT:
return new StartDocumentImpl(reader.getEncoding(), reader.getCharacterEncodingScheme() != null, reader.isStandalone(), reader.standaloneSet(), reader.getVersion(), location);
case XMLStreamConstants.START_ELEMENT:
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/XMLEventFactoryImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/XMLEventFactoryImpl.java?rev=730318&r1=730317&r2=730318&view=diff
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/XMLEventFactoryImpl.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/XMLEventFactoryImpl.java Tue Dec 30 22:15:42 2008
@@ -19,10 +19,12 @@
import java.util.Iterator;
+import javax.xml.XMLConstants;
import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.stream.Location;
import javax.xml.stream.XMLEventFactory;
+import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.events.Attribute;
import javax.xml.stream.events.Characters;
import javax.xml.stream.events.Comment;
@@ -36,127 +38,165 @@
import javax.xml.stream.events.StartDocument;
import javax.xml.stream.events.StartElement;
+import org.apache.xerces.stax.events.AttributeImpl;
+import org.apache.xerces.stax.events.CharactersImpl;
+import org.apache.xerces.stax.events.CommentImpl;
+import org.apache.xerces.stax.events.DTDImpl;
+import org.apache.xerces.stax.events.EndDocumentImpl;
+import org.apache.xerces.stax.events.EndElementImpl;
+import org.apache.xerces.stax.events.EntityReferenceImpl;
+import org.apache.xerces.stax.events.NamespaceImpl;
+import org.apache.xerces.stax.events.ProcessingInstructionImpl;
+import org.apache.xerces.stax.events.StartDocumentImpl;
+import org.apache.xerces.stax.events.StartElementImpl;
+
/**
- * @xerces.internal
- *
* <p>Implementation of XMLEventFactory.</p>
*
+ * @xerces.internal
+ *
* @version $Id$
*/
public final class XMLEventFactoryImpl extends XMLEventFactory {
+
+ private Location fLocation;
public XMLEventFactoryImpl() {}
- public void setLocation(Location location) {}
+ public void setLocation(Location location) {
+ fLocation = location;
+ }
public Attribute createAttribute(String prefix, String namespaceURI,
String localName, String value) {
- return null;
+ return createAttribute(new QName(namespaceURI, localName, prefix), value);
}
public Attribute createAttribute(String localName, String value) {
- return null;
+ return createAttribute(new QName(localName), value);
}
public Attribute createAttribute(QName name, String value) {
- return null;
+ return new AttributeImpl(name, value, "CDATA", true, fLocation);
}
public Namespace createNamespace(String namespaceURI) {
- return null;
+ return createNamespace(XMLConstants.DEFAULT_NS_PREFIX, namespaceURI);
}
public Namespace createNamespace(String prefix, String namespaceUri) {
- return null;
+ return new NamespaceImpl(prefix, namespaceUri, fLocation);
}
public StartElement createStartElement(QName name, Iterator attributes,
Iterator namespaces) {
- return null;
+ return createStartElement(name, attributes, namespaces, null);
}
public StartElement createStartElement(String prefix, String namespaceUri,
String localName) {
- return null;
+ return createStartElement(new QName(namespaceUri, localName, prefix), null, null);
}
public StartElement createStartElement(String prefix, String namespaceUri,
String localName, Iterator attributes, Iterator namespaces) {
- return null;
+ return createStartElement(new QName(namespaceUri, localName, prefix), attributes, namespaces);
}
public StartElement createStartElement(String prefix, String namespaceUri,
String localName, Iterator attributes, Iterator namespaces,
NamespaceContext context) {
- return null;
+ return createStartElement(new QName(namespaceUri, localName, prefix), attributes, namespaces, context);
+ }
+
+ private StartElement createStartElement(QName name, Iterator attributes,
+ Iterator namespaces, NamespaceContext context) {
+ StartElementImpl start = new StartElementImpl(name, context, fLocation);
+ if (attributes != null) {
+ while (attributes.hasNext()) {
+ start.addAttribute((Attribute) attributes.next());
+ }
+ }
+ if (namespaces != null) {
+ while (namespaces.hasNext()) {
+ start.addNamespace((Namespace) namespaces.next());
+ }
+ }
+ return start;
}
public EndElement createEndElement(QName name, Iterator namespaces) {
- return null;
+ EndElementImpl end = new EndElementImpl(name, fLocation);
+ if (namespaces != null) {
+ while (namespaces.hasNext()) {
+ end.addNamespace((Namespace) namespaces.next());
+ }
+ }
+ return end;
}
public EndElement createEndElement(String prefix, String namespaceUri,
String localName) {
- return null;
+ return createEndElement(new QName(namespaceUri, localName, prefix), null);
}
public EndElement createEndElement(String prefix, String namespaceUri,
String localName, Iterator namespaces) {
- return null;
+ return createEndElement(new QName(namespaceUri, localName, prefix), namespaces);
}
public Characters createCharacters(String content) {
- return null;
+ return new CharactersImpl(content, XMLStreamConstants.CHARACTERS, fLocation);
}
public Characters createCData(String content) {
- return null;
+ return new CharactersImpl(content, XMLStreamConstants.CDATA, fLocation);
}
public Characters createSpace(String content) {
- return null;
+ return createCharacters(content);
}
public Characters createIgnorableSpace(String content) {
- return null;
+ return new CharactersImpl(content, XMLStreamConstants.SPACE, fLocation);
}
public StartDocument createStartDocument() {
- return null;
+ return createStartDocument(null, null);
}
public StartDocument createStartDocument(String encoding, String version,
boolean standalone) {
- return null;
+ return new StartDocumentImpl(encoding, encoding != null, standalone, true, version, fLocation);
}
public StartDocument createStartDocument(String encoding, String version) {
- return null;
+ return new StartDocumentImpl(encoding, encoding != null, false, false, version, fLocation);
}
public StartDocument createStartDocument(String encoding) {
- return null;
+ return createStartDocument(encoding, null);
}
public EndDocument createEndDocument() {
- return null;
+ return new EndDocumentImpl(fLocation);
}
public EntityReference createEntityReference(String name,
EntityDeclaration declaration) {
- return null;
+ return new EntityReferenceImpl(name, declaration, fLocation);
}
public Comment createComment(String text) {
- return null;
+ return new CommentImpl(text, fLocation);
}
public ProcessingInstruction createProcessingInstruction(String target,
String data) {
- return null;
+ return new ProcessingInstructionImpl(target, data, fLocation);
}
public DTD createDTD(String dtd) {
- return null;
+ return new DTDImpl(dtd, fLocation);
}
}
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/CharactersImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/CharactersImpl.java?rev=730318&r1=730317&r2=730318&view=diff
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/CharactersImpl.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/CharactersImpl.java Tue Dec 30 22:15:42 2008
@@ -20,6 +20,8 @@
import javax.xml.stream.Location;
import javax.xml.stream.events.Characters;
+import org.apache.xerces.util.XMLChar;
+
/**
* @xerces.internal
*
@@ -30,9 +32,6 @@
public final class CharactersImpl extends XMLEventImpl implements Characters {
private final String fData;
- private final boolean fIsWS;
- private final boolean fIsCData;
- private final boolean fIsIgnorableWS;
/**
* Standard constructor.
@@ -40,12 +39,9 @@
* @param location
* @param schemaType
*/
- public CharactersImpl(final String data, final boolean isWS, final boolean isCData, final boolean isIgnorableWS, final Location location) {
- super(CHARACTERS, location);
+ public CharactersImpl(final String data, final int eventType, final Location location) {
+ super(eventType, location);
fData = data;
- fIsWS = isWS;
- fIsCData = isCData;
- fIsIgnorableWS = isIgnorableWS;
}
/**
@@ -59,22 +55,30 @@
* @see javax.xml.stream.events.Characters#isWhiteSpace()
*/
public boolean isWhiteSpace() {
- return fIsWS;
+ final int length = fData != null ? fData.length() : 0;
+ if (length == 0) {
+ return false;
+ }
+ for (int i = 0; i < length; ++i) {
+ if (!XMLChar.isSpace(fData.charAt(i))) {
+ return false;
+ }
+ }
+ return true;
}
/**
* @see javax.xml.stream.events.Characters#isCData()
*/
public boolean isCData() {
- return fIsCData;
+ return CDATA == getEventType();
}
/**
* @see javax.xml.stream.events.Characters#isIgnorableWhiteSpace()
*/
public boolean isIgnorableWhiteSpace() {
- return fIsIgnorableWS;
+ return SPACE == getEventType();
}
-
}
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/DTDImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/DTDImpl.java?rev=730318&r1=730317&r2=730318&view=diff
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/DTDImpl.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/DTDImpl.java Tue Dec 30 22:15:42 2008
@@ -17,10 +17,10 @@
package org.apache.xerces.stax.events;
+import java.util.Collections;
import java.util.List;
import javax.xml.stream.Location;
-import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.events.DTD;
/**
@@ -32,29 +32,27 @@
*/
public final class DTDImpl extends XMLEventImpl implements DTD {
- private final String fDtd;
+ private final String fDTD;
/**
* Constructor.
*/
public DTDImpl(final String dtd, final Location location) {
- super(XMLStreamConstants.DTD, location);
- fDtd = dtd;
+ super(DTD, location);
+ fDTD = dtd;
}
/**
* @see javax.xml.stream.events.DTD#getDocumentTypeDeclaration()
*/
public String getDocumentTypeDeclaration() {
- // TODO Auto-generated method stub
- return null;
+ return fDTD;
}
/**
* @see javax.xml.stream.events.DTD#getProcessedDTD()
*/
public Object getProcessedDTD() {
- // TODO Auto-generated method stub
return null;
}
@@ -62,16 +60,13 @@
* @see javax.xml.stream.events.DTD#getNotations()
*/
public List getNotations() {
- // TODO Auto-generated method stub
- return null;
+ return Collections.EMPTY_LIST;
}
/**
* @see javax.xml.stream.events.DTD#getEntities()
*/
public List getEntities() {
- // TODO Auto-generated method stub
- return null;
+ return Collections.EMPTY_LIST;
}
-
}
Added: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/ElementImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/ElementImpl.java?rev=730318&view=auto
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/ElementImpl.java (added)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/ElementImpl.java Tue Dec 30 22:15:42 2008
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.xerces.stax.events;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.events.Namespace;
+
+/**
+ * @xerces.internal
+ *
+ * @author Lucian Holland
+ * @author Michael Glavassevich, IBM
+ *
+ * @version $Id$
+ */
+public abstract class ElementImpl extends XMLEventImpl {
+
+ /**
+ * The qualified name of the element that is being closed.
+ */
+ private final QName fName;
+
+ /**
+ * Namespaces declared in the current scope.
+ */
+ private final List fNamespaces = new ArrayList();
+
+ /**
+ * Constructor.
+ */
+ ElementImpl(final QName name, final boolean isStartElement, final Location location) {
+ super(isStartElement ? START_ELEMENT : END_ELEMENT, location);
+ fName = name;
+ }
+
+ /**
+ * @see javax.xml.stream.events.StartElement#getName()
+ * @see javax.xml.stream.events.EndElement#getName()
+ */
+ public final QName getName() {
+ return fName;
+ }
+
+ /**
+ * @see javax.xml.stream.events.StartElement#getNamespaces()
+ * @see javax.xml.stream.events.EndElement#getNamespaces()
+ */
+ public final Iterator getNamespaces() {
+ return createImmutableIterator(fNamespaces.iterator());
+ }
+
+ public final void addNamespace(final Namespace namespace) {
+ fNamespaces.add(namespace);
+ }
+
+ static Iterator createImmutableIterator(Iterator iter) {
+ return new NoRemoveIterator(iter);
+ }
+
+ private static final class NoRemoveIterator implements Iterator {
+
+ private final Iterator fWrapped;
+
+ public NoRemoveIterator(Iterator wrapped) {
+ fWrapped = wrapped;
+ }
+
+ /**
+ * @see java.util.Iterator#hasNext()
+ */
+ public boolean hasNext() {
+ return fWrapped.hasNext();
+ }
+
+ /**
+ * @see java.util.Iterator#next()
+ */
+ public Object next() {
+ return fWrapped.next();
+ }
+
+ /**
+ * @see java.util.Iterator#remove()
+ */
+ public void remove() {
+ throw new UnsupportedOperationException("Attributes iterator is read-only.");
+ }
+ }
+}
Propchange: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/ElementImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/ElementImpl.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EndDocumentImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EndDocumentImpl.java?rev=730318&r1=730317&r2=730318&view=diff
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EndDocumentImpl.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EndDocumentImpl.java Tue Dec 30 22:15:42 2008
@@ -18,7 +18,6 @@
package org.apache.xerces.stax.events;
import javax.xml.stream.Location;
-import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.events.EndDocument;
/**
@@ -35,7 +34,7 @@
* @param location Location object for this event.
*/
public EndDocumentImpl(Location location) {
- super(XMLStreamConstants.END_DOCUMENT, location);
+ super(END_DOCUMENT, location);
}
}
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EndElementImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EndElementImpl.java?rev=730318&r1=730317&r2=730318&view=diff
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EndElementImpl.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EndElementImpl.java Tue Dec 30 22:15:42 2008
@@ -17,11 +17,8 @@
package org.apache.xerces.stax.events;
-import java.util.Iterator;
-
import javax.xml.namespace.QName;
import javax.xml.stream.Location;
-import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.events.EndElement;
/**
@@ -31,34 +28,13 @@
*
* @version $Id$
*/
-public final class EndElementImpl extends XMLEventImpl implements EndElement {
-
- /**
- * The qualified name of the element that is being closed.
- */
- private final QName fName;
+public final class EndElementImpl extends ElementImpl implements EndElement {
/**
* @param location The location object for this event.
*/
public EndElementImpl(final QName name, final Location location) {
- super(XMLStreamConstants.END_ELEMENT, location);
- fName = name;
- }
-
- /**
- * @see javax.xml.stream.events.EndElement#getName()
- */
- public QName getName() {
- return fName;
- }
-
- /**
- * @see javax.xml.stream.events.EndElement#getNamespaces()
- */
- public Iterator getNamespaces() {
- // TODO Auto-generated method stub
- return null;
+ super(name, false, location);
}
}
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EntityReferenceImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EntityReferenceImpl.java?rev=730318&r1=730317&r2=730318&view=diff
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EntityReferenceImpl.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/EntityReferenceImpl.java Tue Dec 30 22:15:42 2008
@@ -30,19 +30,36 @@
*/
public final class EntityReferenceImpl extends XMLEventImpl implements
EntityReference {
+
+ /**
+ * The name of the entity.
+ */
+ private final String fName;
/**
* The entity declaration for this entity reference.
*/
private final EntityDeclaration fDecl;
-
+
/**
* Constructor.
+ * @param decl
* @param location
*/
public EntityReferenceImpl(final EntityDeclaration decl, final Location location) {
+ this(decl != null ? decl.getName() : null, decl, location);
+ }
+
+ /**
+ * Constructor.
+ * @param name
+ * @param decl
+ * @param location
+ */
+ public EntityReferenceImpl(final String name, final EntityDeclaration decl, final Location location) {
super(ENTITY_REFERENCE, location);
- fDecl = decl;;
+ fName = name;
+ fDecl = decl;
}
/**
@@ -56,9 +73,7 @@
* @see javax.xml.stream.events.EntityReference#getName()
*/
public String getName() {
- //TODO: Is this actually correct? Not sure how an entity ref can have a different
- //name to the entity decl, but needs checking just in case.
- return fDecl.getName();
+ return fName;
}
}
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/StartElementImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/StartElementImpl.java?rev=730318&r1=730317&r2=730318&view=diff
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/StartElementImpl.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/StartElementImpl.java Tue Dec 30 22:15:42 2008
@@ -17,10 +17,8 @@
package org.apache.xerces.stax.events;
-import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -28,7 +26,6 @@
import javax.xml.namespace.QName;
import javax.xml.stream.Location;
import javax.xml.stream.events.Attribute;
-import javax.xml.stream.events.Namespace;
import javax.xml.stream.events.StartElement;
/**
@@ -38,7 +35,7 @@
*
* @version $Id$
*/
-public final class StartElementImpl extends XMLEventImpl implements StartElement {
+public final class StartElementImpl extends ElementImpl implements StartElement {
private final Map fAttributes = new TreeMap(new Comparator(){
public int compare(Object o1, Object o2) {
@@ -49,8 +46,6 @@
QName name2 = (QName)o2;
return name1.toString().compareTo(name2.toString());
}});
- private final List fNamespaces = new ArrayList();
- private final QName fName;
private final NamespaceContext fNamespaceContext;
/**
@@ -58,30 +53,15 @@
* @param schemaType
*/
public StartElementImpl(final QName name, final NamespaceContext namespaceContext, final Location location) {
- super(START_ELEMENT, location);
- fName = name;
+ super(name, true, location);
fNamespaceContext = namespaceContext;
}
/**
- * @see javax.xml.stream.events.StartElement#getName()
- */
- public QName getName() {
- return fName;
- }
-
- /**
* @see javax.xml.stream.events.StartElement#getAttributes()
*/
public Iterator getAttributes() {
- return new NoRemoveIterator(fAttributes.values().iterator());
- }
-
- /**
- * @see javax.xml.stream.events.StartElement#getNamespaces()
- */
- public Iterator getNamespaces() {
- return new NoRemoveIterator(fNamespaces.iterator());
+ return createImmutableIterator(fAttributes.values().iterator());
}
/**
@@ -108,41 +88,5 @@
public void addAttribute(final Attribute attribute) {
fAttributes.put(attribute.getName(), attribute);
}
-
- public void addNamespace(final Namespace namespace) {
- fNamespaces.add(namespace);
- }
-
-
- private final class NoRemoveIterator implements Iterator {
-
- private final Iterator fWrapped;
-
- public NoRemoveIterator(Iterator wrapped) {
- fWrapped = wrapped;
- }
-
- /**
- * @see java.util.Iterator#hasNext()
- */
- public boolean hasNext() {
- return fWrapped.hasNext();
- }
-
- /**
- * @see java.util.Iterator#next()
- */
- public Object next() {
- return fWrapped.next();
- }
-
- /**
- * @see java.util.Iterator#remove()
- */
- public void remove() {
- throw new UnsupportedOperationException("Attributes iterator is read-only.");
- }
-
- }
}
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/XMLEventImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/XMLEventImpl.java?rev=730318&r1=730317&r2=730318&view=diff
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/XMLEventImpl.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/events/XMLEventImpl.java Tue Dec 30 22:15:42 2008
@@ -21,7 +21,6 @@
import javax.xml.namespace.QName;
import javax.xml.stream.Location;
-import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.Characters;
import javax.xml.stream.events.EndElement;
@@ -51,7 +50,7 @@
/**
* Constructor.
*/
- public XMLEventImpl(final int eventType, final Location location) {
+ XMLEventImpl(final int eventType, final Location location) {
fEventType = eventType;
fLocation = location;
}
@@ -74,63 +73,65 @@
* @see javax.xml.stream.events.XMLEvent#isStartElement()
*/
public final boolean isStartElement() {
- return XMLStreamConstants.START_ELEMENT == fEventType;
+ return START_ELEMENT == fEventType;
}
/**
* @see javax.xml.stream.events.XMLEvent#isAttribute()
*/
public final boolean isAttribute() {
- return XMLStreamConstants.ATTRIBUTE == fEventType;
+ return ATTRIBUTE == fEventType;
}
/**
* @see javax.xml.stream.events.XMLEvent#isNamespace()
*/
public final boolean isNamespace() {
- return XMLStreamConstants.NAMESPACE == fEventType;
+ return NAMESPACE == fEventType;
}
/**
* @see javax.xml.stream.events.XMLEvent#isEndElement()
*/
public final boolean isEndElement() {
- return XMLStreamConstants.END_ELEMENT == fEventType;
+ return END_ELEMENT == fEventType;
}
/**
* @see javax.xml.stream.events.XMLEvent#isEntityReference()
*/
public final boolean isEntityReference() {
- return XMLStreamConstants.ENTITY_REFERENCE == fEventType;
+ return ENTITY_REFERENCE == fEventType;
}
/**
* @see javax.xml.stream.events.XMLEvent#isProcessingInstruction()
*/
public final boolean isProcessingInstruction() {
- return XMLStreamConstants.PROCESSING_INSTRUCTION == fEventType;
+ return PROCESSING_INSTRUCTION == fEventType;
}
/**
* @see javax.xml.stream.events.XMLEvent#isCharacters()
*/
public final boolean isCharacters() {
- return XMLStreamConstants.CHARACTERS == fEventType;
+ return CHARACTERS == fEventType ||
+ CDATA == fEventType ||
+ SPACE == fEventType;
}
/**
* @see javax.xml.stream.events.XMLEvent#isStartDocument()
*/
public final boolean isStartDocument() {
- return XMLStreamConstants.START_DOCUMENT == fEventType;
+ return START_DOCUMENT == fEventType;
}
/**
* @see javax.xml.stream.events.XMLEvent#isEndDocument()
*/
public final boolean isEndDocument() {
- return XMLStreamConstants.END_DOCUMENT == fEventType;
+ return END_DOCUMENT == fEventType;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org