You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2006/11/02 07:05:43 UTC
svn commit: r470238 -
/webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
Author: dims
Date: Wed Nov 1 22:05:42 2006
New Revision: 470238
URL: http://svn.apache.org/viewvc?view=rev&rev=470238
Log:
much better patch from Amila for AXIS2-1258
Modified:
webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
Modified: webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl?view=diff&rev=470238&r1=470237&r2=470238
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl (original)
+++ webservices/axis2/branches/java/1_1/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl Wed Nov 1 22:05:42 2006
@@ -1954,6 +1954,103 @@
</xsl:when>
+ <!-- handling binary case -->
+ <xsl:when test="@binary">
+ <xsl:if test="@nillable">
+ if ("true".equals(reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil"))){
+ <xsl:value-of select="$listName"/>.add(null);
+ reader.next();
+ } else {
+ </xsl:if>
+
+ if (isReaderMTOMAware
+ &&
+ java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
+ {
+ //MTOM aware reader - get the datahandler directly and put it in the object
+ <xsl:value-of select="$listName"/>.add(
+ (javax.activation.DataHandler) reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
+ } else {
+ if (reader.getEventType() == javax.xml.stream.XMLStreamConstants.START_ELEMENT && reader.getName().equals(new javax.xml.namespace.QName(org.apache.axiom.om.impl.MTOMConstants.XOP_NAMESPACE_URI, org.apache.axiom.om.impl.MTOMConstants.XOP_INCLUDE)))
+ {
+ java.lang.String id = org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
+ <xsl:value-of select="$listName"/>.add(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder) ((org.apache.axiom.om.impl.llom.OMStAXWrapper) reader).getBuilder()).getDataHandler(id));
+ reader.next();
+ reader.next();
+ } else if(reader.hasText()) {
+ //Do the usual conversion
+ java.lang.String content = reader.getText();
+ <xsl:value-of select="$listName"/>.add(
+ org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
+ reader.next();
+ }
+
+ }
+
+
+ <xsl:if test="@nillable">}</xsl:if>
+ //loop until we find a start element that is not part of this array
+ boolean <xsl:value-of select="$loopBoolName"/> = false;
+ while(!<xsl:value-of select="$loopBoolName"/>){
+ // Ensure we are at the EndElement
+ while (!reader.isEndElement()){
+ reader.next();
+ }
+ // Step out of this element
+ reader.next();
+ // Step to next element event.
+ while (!reader.isStartElement() && !reader.isEndElement())
+ reader.next();
+ if (reader.isEndElement()){
+ //two continuous end elements means we are exiting the xml structure
+ <xsl:value-of select="$loopBoolName"/> = true;
+ } else {
+ if (<xsl:value-of select="$propQName"/>.equals(reader.getName())){
+ <xsl:if test="@nillable">
+ if ("true".equals(reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil"))){
+ <xsl:value-of select="$listName"/>.add(null);
+ reader.next();
+ } else {
+ </xsl:if>
+
+ <xsl:if test="not($simple)">reader.next();</xsl:if>
+ if (isReaderMTOMAware
+ &&
+ java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_BINARY)))
+ {
+ //MTOM aware reader - get the datahandler directly and put it in the object
+ <xsl:value-of select="$listName"/>.add(
+ (javax.activation.DataHandler) reader.getProperty(org.apache.axiom.om.OMConstants.DATA_HANDLER));
+ } else {
+ if (reader.getEventType() == javax.xml.stream.XMLStreamConstants.START_ELEMENT && reader.getName().equals(new javax.xml.namespace.QName(org.apache.axiom.om.impl.MTOMConstants.XOP_NAMESPACE_URI, org.apache.axiom.om.impl.MTOMConstants.XOP_INCLUDE)))
+ {
+ java.lang.String id = org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
+ <xsl:value-of select="$listName"/>.add(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder) ((org.apache.axiom.om.impl.llom.OMStAXWrapper) reader).getBuilder()).getDataHandler(id));
+ reader.next();
+ reader.next();
+ } else if(reader.hasText()) {
+ //Do the usual conversion
+ java.lang.String content = reader.getText();
+ <xsl:value-of select="$listName"/>.add(
+ org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
+ reader.next();
+ }
+
+ }
+
+ <xsl:if test="@nillable">}</xsl:if>
+ }else{
+ <xsl:value-of select="$loopBoolName"/> = true;
+ }
+ }
+ }
+ // call the converter utility to convert and set the array
+ object.set<xsl:value-of select="$javaName"/>((<xsl:value-of select="$propertyType"/>)
+ org.apache.axis2.databinding.utils.ConverterUtil.convertToArray(
+ <xsl:value-of select="$basePropertyType"/>.class,
+ <xsl:value-of select="$listName"/>));
+ </xsl:when>
+
<xsl:otherwise>
<xsl:choose>
<xsl:when test="@default">
@@ -2128,11 +2225,17 @@
java.lang.String id = org.apache.axiom.om.util.ElementHelper.getContentID(reader, "UTF-8");
object.set<xsl:value-of select="$javaName"/>(((org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder) ((org.apache.axiom.om.impl.llom.OMStAXWrapper) reader).getBuilder()).getDataHandler(id));
reader.next();
+ <xsl:if test="($isType or $anon) and not($simple)">
+ reader.next();
+ </xsl:if>
} else if(reader.hasText()) {
//Do the usual conversion
java.lang.String content = reader.getText();
object.set<xsl:value-of select="$javaName"/>(
org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
+ <xsl:if test="($isType or $anon) and not($simple)">
+ reader.next();
+ </xsl:if>
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org