Author: ajith
Date: Sun Jul  9 05:10:03 2006
New Revision: 420283

URL: http://svn.apache.org/viewvc?rev=420283&view=rev
Log:
1. Changed the implementation of the ADBDatabindingTemplate.xsl to generate the 
OMElement from the pull parser (rather than using the getOMElement method) for 
the unwrapped case. The getOMElement method needs work to make this case right.
2. Modified the ADBDataSource.java to keep a parent QName reference.

Now unwrapping works for the *client side* with ADB!

Modified:
    
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
    
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
    
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java

Modified: 
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl?rev=420283&r1=420282&r2=420283&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
 (original)
+++ 
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
 Sun Jul  9 05:10:03 2006
@@ -254,9 +254,11 @@
             final javax.xml.namespace.QName parentQName,
             final org.apache.axiom.om.OMFactory factory){
 
+
         org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this){
-                           public void serialize(
+                       new 
org.apache.axis2.databinding.ADBDataSource(this,parentQName){
+
+         public void serialize(
                                   javax.xml.stream.XMLStreamWriter xmlWriter) 
throws javax.xml.stream.XMLStreamException {
             <xsl:choose>
             <xsl:when test="@type or @anon">

Modified: 
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl?rev=420283&r1=420282&r2=420283&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
 (original)
+++ 
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
 Sun Jul  9 05:10:03 2006
@@ -49,9 +49,22 @@
                                 
elt.setText(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(param<xsl:value-of
 select="position()"/>));
                             </xsl:when>
                             <xsl:otherwise>
-                                elt = param<xsl:value-of 
select="position()"/>.getOMElement(
+                               <!-- elt = param<xsl:value-of 
select="position()"/>.getOMElement(
                                 new 
javax.xml.namespace.QName("","<xsl:value-of select="@partname"/>"),
-                                
org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+                                
org.apache.axiom.om.OMAbstractFactory.getOMFactory());  -->
+                                <xsl:variable 
name="paramname">param<xsl:value-of select="position()"/></xsl:variable>
+                                <xsl:variable 
name="buildername">builder<xsl:value-of select="position()"/></xsl:variable>
+                                <xsl:variable 
name="docEltName">docElt<xsl:value-of select="position()"/></xsl:variable>
+                                elt = fac.createOMElement("<xsl:value-of 
select="@partname"/>","",null);
+
+                               org.apache.axiom.om.impl.builder.StAXOMBuilder 
<xsl:value-of select="$buildername"/> = new 
org.apache.axiom.om.impl.builder.StAXOMBuilder(factory,
+                                         <xsl:value-of 
select="$paramname"/>.getPullParser(elt.getQName()));
+
+                                org.apache.axiom.om.OMElement <xsl:value-of 
select="$docEltName"/> = <xsl:value-of 
select="$buildername"/>.getDocumentElement();
+                              (( org.apache.axiom.om.impl.OMNodeEx) 
<xsl:value-of select="$docEltName"/>).setParent(null);
+                               <xsl:value-of select="$docEltName"/>.build();
+                               elt.addChild(<xsl:value-of 
select="$docEltName"/>);
+
                             </xsl:otherwise>
                         </xsl:choose>
                         wrapperElt.addChild(elt);

Modified: 
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java?rev=420283&r1=420282&r2=420283&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java
 Sun Jul  9 05:10:03 2006
@@ -8,6 +8,7 @@
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLOutputFactory;
+import javax.xml.namespace.QName;
 import java.io.OutputStream;
 import java.io.Writer;
 /*
@@ -27,15 +28,16 @@
  */
 
 public abstract class ADBDataSource implements OMDataSource {
-
+    protected QName parentQName;
     private ADBBean bean;
 
     /**
      * Constructor taking in an ADBBean
      * @param bean
      */
-    protected ADBDataSource(ADBBean bean) {
+    protected ADBDataSource(ADBBean bean,QName parentQName) {
         this.bean = bean;
+        this.parentQName = parentQName;
     }
 
 
@@ -77,7 +79,7 @@
     public XMLStreamReader getReader() throws XMLStreamException {
         // since only ADBBeans related to elements can be serialized
         // we are safe in passing null here. 
-        return bean.getPullParser(null);
+        return bean.getPullParser(parentQName);
     }
 
 }



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

Reply via email to