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;
}
/**