You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by aj...@apache.org on 2006/07/09 14:10:03 UTC

svn commit: r420283 - in /webservices/axis2/trunk/java/modules: adb-codegen/src/org/apache/axis2/schema/template/ adb/src/org/apache/axis2/databinding/

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: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org