Author: ips
Date: Thu Apr  7 10:46:41 2005
New Revision: 160422

URL: http://svn.apache.org/viewcvs?view=rev&rev=160422
Log:
cleaned up addChildElement() and its test

Modified:
    incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java
    incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java

Modified: incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java
URL: 
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java?view=diff&r1=160421&r2=160422
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java 
(original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java Thu 
Apr  7 10:46:41 2005
@@ -20,9 +20,9 @@
 import org.apache.ws.util.i18n.MessagesImpl;
 import org.apache.xmlbeans.SchemaType;
 import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlObject;
 import org.apache.xmlbeans.XmlOptions;
-import org.apache.xmlbeans.XmlException;
 import org.w3c.dom.Document;
 import org.w3c.dom.DocumentFragment;
 import org.w3c.dom.Element;
@@ -338,20 +338,22 @@
                                              XmlObject xBean )
     {
         parentXBean = getRootElement( parentXBean );
+        xBean = getRootElement( xBean );
         XmlCursor parentCursor = parentXBean.newCursor();
-        if ( parentCursor.toLastChild() )
+        if ( parentCursor.toLastChild() ) // has children
         {
             parentCursor.toEndToken();
             parentCursor.toNextToken();
         }
-        parentCursor.toEndToken();
-        xBean = getRootElement( xBean );
+        else                              // childless
+        {
+            parentCursor.toEndToken();
+        }
         parentCursor.insertElement( getName( xBean ) );
         parentCursor.toPrevSibling();
         XmlObject childXBean = parentCursor.getObject();
         parentCursor.dispose();
-        childXBean.set( xBean );
-        return childXBean;
+        return childXBean.set( xBean );
     }
 
     /**
@@ -364,16 +366,20 @@
                                              QName name )
     {
         parentXBean = getRootElement( parentXBean );
-        XmlCursor xCursor = parentXBean.newCursor();
-        if ( xCursor.toLastChild() )
+        XmlCursor parentCursor = parentXBean.newCursor();
+        if ( parentCursor.toLastChild() )  // has children
+        {
+            parentCursor.toEndToken();
+            parentCursor.toNextToken();
+        }
+        else                               // childless
         {
-            xCursor.toEndToken();
+            parentCursor.toEndToken();
         }
-        xCursor.toNextToken();
-        xCursor.insertElement( name );
-        xCursor.toPrevSibling();
-        XmlObject childXBean = xCursor.getObject();
-        xCursor.dispose();
+        parentCursor.insertElement( name );
+        parentCursor.toPrevSibling();
+        XmlObject childXBean = parentCursor.getObject();
+        parentCursor.dispose();
         return childXBean;        
     }
 
@@ -576,6 +582,7 @@
         String localName = value.substring( colonIndex + 1 );
         return new QName( nsURI, localName );
     }
+
     /**
      * Makes and returns a copy of the specified XMLBean.
      *
@@ -589,20 +596,18 @@
         {
             return XmlObject.Factory.parse( srcXBean.xmlText( new 
XmlOptions().setSaveOuter() ) );
         }
-        catch ( XmlException e )
+        catch ( XmlException xe )
         {
-            e.printStackTrace();  //To change body of catch statement use File 
| Settings | File Templates.
+            throw new RuntimeException( xe );
         }
 
-        XmlCursor srcCursor = srcXBean.newCursor(  );
+        /*XmlCursor srcCursor = srcXBean.newCursor(  );
 
        // create an object of the appropriate type to copy to
        XmlObject destXBean = XmlObject.Factory.newInstance( new XmlOptions( 
).setDocumentType( srcXBean.schemaType() ) );
-       //XmlObject destXBean = XmlObject.Factory.newInstance( );
        XmlCursor destCursor = destXBean.newCursor(  );
 
        // move into the document
-       //destCursor.toStartDoc(  ); // TODO: I think doing this is wrong, 
since it assumes the src xbean is a document
        destCursor.toNextToken(  );
 
        // copy the xml into the new document
@@ -612,7 +617,7 @@
        destCursor.dispose(  );
        srcCursor.dispose(  );
 
-       return destXBean;
+       return destXBean;*/
     }
 
     /**

Modified: 
incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java?view=diff&r1=160421&r2=160422
==============================================================================
--- 
incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java 
(original)
+++ 
incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java 
Thu Apr  7 10:46:41 2005
@@ -22,14 +22,13 @@
 import org.apache.xmlbeans.XmlObject;
 import org.apache.xmlbeans.XmlOptions;
 import org.apache.xmlbeans.XmlString;
-import org.apache.xmlbeans.XmlDateTime;
 import 
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSBaseFaults12Draft01.BaseFaultType;
+import 
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceLifetime12Draft01.CurrentTimeDocument;
 import 
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.GetResourcePropertyDocument;
 import 
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.QueryExpressionDocument;
 import 
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.QueryExpressionType;
 import 
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.ResourcePropertyValueChangeNotificationDocument;
 import 
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.ResourcePropertyValueChangeNotificationType;
-import 
org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceLifetime12Draft01.CurrentTimeDocument;
 import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceDocument;
 import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceType;
 import org.xmlsoap.schemas.ws.x2003.x03.addressing.ReferencePropertiesType;
@@ -73,12 +72,11 @@
         ResourcePropertyValueChangeNotificationType 
resourcePropertyValueChangeNotificationType = 
ResourcePropertyValueChangeNotificationType.Factory.newInstance();
         ResourcePropertyValueChangeNotificationType.OldValue oldValue = 
resourcePropertyValueChangeNotificationType.addNewOldValue();
         XmlBeanUtils.addChildElement( oldValue, XmlObject.Factory.parse( 
"<foo/>" ) );
-        System.out.println( oldValue.xmlText( new XmlOptions( ).setSaveOuter() 
) );
         XmlObject[] childElems = XmlBeanUtils.getChildElements( oldValue, new 
QName( "foo" ) );
         assertEquals( 1, childElems.length );
         XmlObject fooElem = childElems[0];
         childElems = XmlBeanUtils.getChildElements( fooElem, new QName( "foo" 
) );
-        //assertEquals( 0, childElems.length );
+        //assertEquals( 0, childElems.length );  // a bug in XmlBeans causes 
this assertion to fail
 
         resourcePropertyValueChangeNotificationType = 
ResourcePropertyValueChangeNotificationType.Factory.newInstance();
         oldValue = 
resourcePropertyValueChangeNotificationType.addNewOldValue();
@@ -86,11 +84,15 @@
         currentTimeDocument.setCurrentTime( Calendar.getInstance( ) );
         XmlObject newXBean = XmlBeanUtils.copyXmlBean( 
currentTimeDocument.xgetCurrentTime() );
         XmlBeanUtils.addChildElement( oldValue, newXBean );
-        System.out.println( oldValue.xmlText( new XmlOptions( ).setSaveOuter() 
) );
-
-        final QName elemName = SushiPropertyQNames.IKA;
-        final String elemValue = "whatever";
-        final XmlObject xBean = XmlObject.Factory.parse(
+        childElems = XmlBeanUtils.getChildElements( oldValue, new QName( 
"http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd";,
 "CurrentTime" ) );
+        assertEquals( 1, childElems.length );
+        XmlObject currentTimeElem = childElems[0];
+        childElems = XmlBeanUtils.getChildElements( currentTimeElem, new 
QName( 
"http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd";,
 "CurrentTime" ) );
+        assertEquals( 0, childElems.length );
+
+        QName elemName = SushiPropertyQNames.IKA;
+        String elemValue = "whatever";
+        XmlObject xBean = XmlObject.Factory.parse(
                 "<" + elemName.getLocalPart() + " xmlns=\"" + 
elemName.getNamespaceURI() + "\">" + elemValue + "</" +
                 elemName.getLocalPart() +
                 ">" );



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to