You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by am...@apache.org on 2005/07/04 18:28:53 UTC

svn commit: r209098 - /geronimo/trunk/modules/j2ee-schema/src/java/org/apache/geronimo/schema/SchemaConversionUtils.java

Author: ammulder
Date: Mon Jul  4 09:28:50 2005
New Revision: 209098

URL: http://svn.apache.org/viewcvs?rev=209098&view=rev
Log:
Add a helper to get a nested child element without changing its type

Modified:
    geronimo/trunk/modules/j2ee-schema/src/java/org/apache/geronimo/schema/SchemaConversionUtils.java

Modified: geronimo/trunk/modules/j2ee-schema/src/java/org/apache/geronimo/schema/SchemaConversionUtils.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/j2ee-schema/src/java/org/apache/geronimo/schema/SchemaConversionUtils.java?rev=209098&r1=209097&r2=209098&view=diff
==============================================================================
--- geronimo/trunk/modules/j2ee-schema/src/java/org/apache/geronimo/schema/SchemaConversionUtils.java (original)
+++ geronimo/trunk/modules/j2ee-schema/src/java/org/apache/geronimo/schema/SchemaConversionUtils.java Mon Jul  4 09:28:50 2005
@@ -408,6 +408,26 @@
         return xmlObject;
     }
 
+    public static XmlObject getNestedObject(XmlObject xmlObject, String desiredElement) {
+        XmlCursor cursor = xmlObject.newCursor();
+        try {
+            while (cursor.hasNextToken()) {
+                if (cursor.isStart()) {
+                    String localName = cursor.getName().getLocalPart();
+                    if (localName.equals(desiredElement)) {
+                        XmlObject child = cursor.getObject();
+                        //The copy seems to be needed to make the type change work for some documents!
+                        return child.copy();
+                    }
+                }
+                cursor.toNextToken();
+            }
+        } finally {
+            cursor.dispose();
+        }
+        throw new IllegalArgumentException("xmlobject did not have desired element: " + desiredElement + "/n" + xmlObject);
+    }
+
     public static XmlObject getNestedObjectAsType(XmlObject xmlObject, String desiredElement, SchemaType type) {
         XmlCursor cursor = xmlObject.newCursor();
         try {