You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ve...@apache.org on 2009/03/14 11:11:55 UTC

svn commit: r753628 - in /webservices/commons/trunk/modules/axiom/modules: axiom-api/src/test/java/org/apache/axiom/om/impl/OMStAXWrapperTestBase.java axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMStAXWrapper.java

Author: veithen
Date: Sat Mar 14 10:11:55 2009
New Revision: 753628

URL: http://svn.apache.org/viewvc?rev=753628&view=rev
Log:
* Merged changes in r356660 (implement nextTag) from OMStAXWrapper to DOMStAXWrapper.
* Added a unit test for nextTag.

Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/impl/OMStAXWrapperTestBase.java
    webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMStAXWrapper.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/impl/OMStAXWrapperTestBase.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/impl/OMStAXWrapperTestBase.java?rev=753628&r1=753627&r2=753628&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/impl/OMStAXWrapperTestBase.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/impl/OMStAXWrapperTestBase.java Sat Mar 14 10:11:55 2009
@@ -161,4 +161,19 @@
     public void testNonRootElementWithoutCaching() throws Exception {
         testNonRootElement(false);
     }
+    
+    public void testNextTag() throws Exception {
+        OMElement element = AXIOMUtil.stringToOM(omMetaFactory.getOMFactory(),
+                "<a> <b> </b> <?pi?> <!--comment--> <c/> </a>");
+        XMLStreamReader stream = element.getXMLStreamReaderWithoutCaching();
+        assertEquals(XMLStreamReader.START_ELEMENT, stream.next());
+        stream.nextTag();
+        assertEquals(XMLStreamReader.START_ELEMENT, stream.getEventType());
+        assertEquals("b", stream.getLocalName());
+        stream.nextTag();
+        assertEquals(XMLStreamReader.END_ELEMENT, stream.getEventType());
+        stream.nextTag();
+        assertEquals(XMLStreamReader.START_ELEMENT, stream.getEventType());
+        assertEquals("c", stream.getLocalName());
+    }
 }

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMStAXWrapper.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMStAXWrapper.java?rev=753628&r1=753627&r2=753628&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMStAXWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMStAXWrapper.java Sat Mar 14 10:11:55 2009
@@ -779,7 +779,7 @@
     }
 
     /**
-     * Not implemented yet
+     * Returns the next tag.
      *
      * @return Returns int.
      * @throws org.apache.axiom.om.impl.exception.OMStreamingException
@@ -787,7 +787,19 @@
      * @throws XMLStreamException
      */
     public int nextTag() throws XMLStreamException {
-        throw new UnsupportedOperationException();
+        int eventType = next();
+        while ((eventType == XMLStreamConstants.CHARACTERS && isWhiteSpace()) // skip whitespace
+                || (eventType == XMLStreamConstants.CDATA && isWhiteSpace()) // skip whitespace
+                || eventType == XMLStreamConstants.SPACE
+                || eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
+                || eventType == XMLStreamConstants.COMMENT) {
+            eventType = next();
+        }
+        if (eventType != XMLStreamConstants.START_ELEMENT &&
+                eventType != XMLStreamConstants.END_ELEMENT) {
+            throw new XMLStreamException("expected start or end tag", getLocation());
+        }
+        return eventType;
     }
 
     /**