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 ve...@apache.org on 2009/07/03 21:41:37 UTC
svn commit: r790996 [4/6] - in
/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template:
ADBBeanTemplate-bean.xsl ADBBeanTemplate-helpermode.xsl ADBBeanTemplate.xsl
Added: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-helpermode.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-helpermode.xsl?rev=790996&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-helpermode.xsl (added)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-helpermode.xsl Fri Jul 3 19:41:36 2009
@@ -0,0 +1,2439 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:template match="bean[@helperMode]">
+
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="choice" select="@choice"/>
+ <xsl:variable name="simple" select="@simple"/>
+ <xsl:variable name="ordered" select="@ordered"/>
+ <xsl:variable name="unordered" select="not($ordered)"/> <!-- for convenience -->
+ <xsl:variable name="isType" select="@type"/>
+ <xsl:variable name="anon" select="@anon"/>
+
+ <xsl:variable name="nsuri" select="@nsuri"/>
+ <xsl:variable name="originalName" select="@originalName"/>
+ <xsl:variable name="nsprefix" select="@nsprefix"/>
+ <xsl:variable name="extension" select="@extension"/>
+ <xsl:variable name="restriction" select="@restriction"/>
+ <xsl:variable name="mapperClass" select="@mapperClass"/>
+ <xsl:variable name="package" select="@package"/>
+ <xsl:variable name="helpername"><xsl:value-of select="$name"/>Helper</xsl:variable>
+ <!-- write the class header. this should be done only when unwrapped -->
+
+ <xsl:if test="not(not(@unwrapped) or (@skip-write))">
+/**
+ * <xsl:value-of select="$name"/>.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis2 version: #axisVersion# #today#
+ */
+
+ package <xsl:value-of select="@package"/>;
+ /**
+ * <xsl:value-of select="$name"/> bean class
+ */
+ </xsl:if>
+
+
+ <xsl:choose>
+ <xsl:when test="not(@helper)">
+
+ public <xsl:if test="not(@unwrapped) or (@skip-write)">static</xsl:if> class <xsl:value-of select="$name"/> <xsl:if test="$extension"> extends <xsl:value-of select="$extension"/></xsl:if>
+ {
+ <xsl:choose>
+ <xsl:when test="@type">/* This type was generated from the piece of schema that had
+ name = <xsl:value-of select="$originalName"/>
+ Namespace URI = <xsl:value-of select="$nsuri"/>
+ Namespace Prefix = <xsl:value-of select="$nsprefix"/>
+ */
+ </xsl:when>
+ <xsl:otherwise>
+ public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
+ "<xsl:value-of select="$nsuri"/>",
+ "<xsl:value-of select="$originalName"/>",
+ "<xsl:value-of select="$nsprefix"/>");
+
+ </xsl:otherwise>
+ </xsl:choose>
+
+ private static java.lang.String generatePrefix(java.lang.String namespace) {
+ if(namespace.equals("<xsl:value-of select="$nsuri"/>")){
+ return "<xsl:value-of select="$nsprefix"/>";
+ }
+ return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+ }
+
+ <xsl:if test="$choice">
+ /** Whenever a new property is set ensure all others are unset
+ * There can be only one choice and the last one wins
+ */
+ private void clearAllSettingTrackers() {
+ <xsl:for-each select="property">
+ local<xsl:value-of select="@javaname"/>Tracker = false;
+ </xsl:for-each>
+ }
+ </xsl:if>
+
+
+ <xsl:for-each select="property">
+ <!-- Write only the NOT inherited properties-->
+ <xsl:if test="not(@inherited)">
+
+ <xsl:variable name="propertyType"><xsl:value-of select="@type"></xsl:value-of></xsl:variable>
+ <xsl:variable name="propertyName"><xsl:value-of select="@name"></xsl:value-of></xsl:variable>
+ <xsl:variable name="javaName"><xsl:value-of select="@javaname"></xsl:value-of></xsl:variable>
+
+ <xsl:variable name="min"><xsl:value-of select="@minOccurs"/></xsl:variable>
+ <xsl:variable name="varName">local<xsl:value-of select="$javaName"/></xsl:variable>
+ <xsl:variable name="settingTracker">local<xsl:value-of select="$javaName"/>Tracker</xsl:variable>
+
+
+ <xsl:variable name="lenFacet"><xsl:value-of select="@lenFacet"/></xsl:variable>
+ <xsl:variable name="maxLenFacet"><xsl:value-of select="@maxLenFacet"/></xsl:variable>
+ <xsl:variable name="minLenFacet"><xsl:value-of select="@minLenFacet"/></xsl:variable>
+ <xsl:variable name="maxExFacet"><xsl:value-of select="@maxExFacet"/></xsl:variable>
+ <xsl:variable name="minExFacet"><xsl:value-of select="@minExFacet"/></xsl:variable>
+ <xsl:variable name="maxInFacet"><xsl:value-of select="@maxInFacet"/></xsl:variable>
+ <xsl:variable name="minInFacet"><xsl:value-of select="@minInFacet"/></xsl:variable>
+ <xsl:variable name="patternFacet"><xsl:value-of select="@patternFacet"/></xsl:variable>
+ <xsl:variable name="shortTypeNameUncapped" select="@shorttypename"/>
+ <xsl:variable name="shortTypeName"
+ select="concat(translate( substring($shortTypeNameUncapped, 1, 1 ),'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ), substring($shortTypeNameUncapped, 2, string-length($shortTypeNameUncapped)))" />
+
+
+ <xsl:choose>
+ <xsl:when test="@removed">
+
+ /**
+ * Auto generated getter method
+ * Overridden from <xsl:value-of select="$restriction"/>
+ *
+ * @throws org.apache.axis2.databinding.ADBException
+ */
+ public <xsl:value-of select="$propertyType"/><xsl:text> </xsl:text>get<xsl:value-of select="$javaName"/>(){
+ throw new java.lang.org.apache.axis2.databinding.ADBException("property has removed");
+ }
+
+ /**
+ * Auto generated setter method
+ * Overridden from <xsl:value-of select="$restriction"/>
+ *
+ * @param param <xsl:value-of select="$javaName"/>
+ * @throws org.apache.axis2.databinding.ADBException
+ */
+ public void set<xsl:value-of select="$javaName"/>(<xsl:value-of select="$propertyType"/> param){
+ throw new org.apache.axis2.databinding.ADBException();
+ }
+
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="(@restricted) and (@occuranceChanged) and (not(@typeChanged)) and (not(@rewrite))">
+ <xsl:variable name="basePropertyType"><xsl:value-of select="@arrayBaseType"/></xsl:variable>
+
+
+ <!-- generate the validator Method, this is specifiacally for validating the arrays-->
+ /**
+ * Validate the array for <xsl:value-of select="$javaName"/>
+ * Overridden from <xsl:value-of select="$restriction"/>
+ */
+ protected void validate<xsl:value-of select="$javaName"/>(<xsl:value-of select="$propertyType"/> param){
+ <xsl:if test="not(@unbound) and @array">
+ if ((param != null) && (param.length > <xsl:value-of select="@maxOccurs"/>)){
+ throw new org.apache.axis2.databinding.ADBException();
+ }
+ </xsl:if>
+ <xsl:if test="$min!=0 and @array">
+ if ((param != null) && (param.length < <xsl:value-of select="$min"/>)){
+ throw new org.apache.axis2.databinding.ADBException();
+ }
+ </xsl:if>
+ }
+
+
+ /**
+ * Auto generated setter method
+ * Overridden from <xsl:value-of select="$restriction"/>
+ *
+ * @param param <xsl:value-of select="$javaName"/>
+ */
+ public void set<xsl:value-of select="$javaName"/>(<xsl:value-of select="$propertyType"/> param){
+ <!-- call the validator-->
+ validate<xsl:value-of select="$javaName"/>(param);
+
+ <xsl:if test="$choice">
+ clearAllSettingTrackers();
+ </xsl:if>
+ <xsl:if test="$min=0 or $choice">
+ <!-- the updating of setting tracker for null values should
+ happen if the attribute is marked as nillable. Else
+ the user can set a null value and it is never marked
+ as set
+ -->
+ <xsl:choose>
+ <xsl:when test="@primitive and not(@array)">
+ // setting primitive variable always to true
+ <xsl:value-of select="$settingTracker"/> = true;
+ </xsl:when>
+ <xsl:otherwise>
+ if (param != null){
+ //update the setting tracker
+ <xsl:value-of select="$settingTracker"/> = true;
+ } else {
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ <xsl:value-of select="$settingTracker"/> = true;
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$settingTracker"/> = false;
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ this.<xsl:value-of select="$varName"/>=param;
+ }
+ </xsl:when>
+ <xsl:otherwise>
+
+ /**
+ * field for <xsl:value-of select="$javaName"/>
+ <xsl:if test="@attribute">
+ * This was an Attribute!</xsl:if>
+ <xsl:if test="@array">
+ * This was an Array!</xsl:if>
+ <xsl:if test="@typeChanged">
+ * Type of this field is a subtype of its original.</xsl:if>
+ <xsl:if test="(@rewrite) and (@occuranceChanged)">
+ * This field was an array in <xsl:value-of select="$restriction"/>.</xsl:if>
+ */
+
+ protected <xsl:value-of select="$propertyType"/><xsl:text> </xsl:text><xsl:value-of select="$varName" /> ;
+ <xsl:if test="enumFacet">
+ private static java.util.HashMap _table_ = new java.util.HashMap();
+
+ // Constructor
+ protected <xsl:value-of select="$name"/>(<xsl:value-of select="$propertyType"/> value) {
+ <xsl:value-of select="$varName" /> = value;
+ <xsl:choose>
+ <xsl:when test="@primitive">
+ _table_.put(<xsl:value-of select="$varName" /> + "", this);
+ </xsl:when>
+ <xsl:otherwise>
+ _table_.put(<xsl:value-of select="$varName" />, this);
+ </xsl:otherwise>
+ </xsl:choose>
+
+ }
+
+ <xsl:for-each select="enumFacet">
+ public static final <xsl:value-of select="$propertyType"/> _<xsl:value-of select="@id"/> =
+ org.apache.axis2.databinding.utils.ConverterUtil.convertTo<xsl:value-of select="$shortTypeName"/>("<xsl:value-of select="@value"/>");
+ </xsl:for-each>
+ <xsl:for-each select="enumFacet">
+ public static final <xsl:value-of select="$name"/><xsl:text> </xsl:text><xsl:value-of select="@id"/> =
+ new <xsl:value-of select="$name"/>(_<xsl:value-of select="@id"/>);
+ </xsl:for-each>
+
+ public <xsl:value-of select="$propertyType"/> getValue() { return <xsl:value-of select="$varName" />;}
+ public static <xsl:value-of select="$name"/> fromValue(<xsl:value-of select="$propertyType"/> value)
+ throws java.lang.IllegalArgumentException {
+ <xsl:value-of select="$name"/> enumeration = (<xsl:value-of select="$name"/>)
+ <xsl:choose>
+ <xsl:when test="@primitive">
+ _table_.get(value + "");
+ </xsl:when>
+ <xsl:otherwise>
+ _table_.get(value);
+ </xsl:otherwise>
+ </xsl:choose>
+
+ if (enumeration==null) throw new java.lang.IllegalArgumentException();
+ return enumeration;
+ }
+ public static <xsl:value-of select="$name"/> fromString(java.lang.String value)
+ throws java.lang.IllegalArgumentException {
+ try {
+ <xsl:choose>
+ <xsl:when test="@primitive">
+ return fromValue(org.apache.axis2.databinding.utils.ConverterUtil.convertTo<xsl:value-of select="$shortTypeName"/>(value));
+ </xsl:when>
+ <xsl:otherwise>
+ return fromValue(new <xsl:value-of select="$propertyType"/>(value));
+ </xsl:otherwise>
+ </xsl:choose>
+
+ } catch (java.lang.Exception e) {
+ throw new java.lang.IllegalArgumentException();
+ }
+ }
+ public boolean equals(java.lang.Object obj) {return (obj == this);}
+ public int hashCode() { return toString().hashCode();}
+ public java.lang.String toString() {
+ <xsl:choose>
+ <xsl:when test="@primitive">
+ return <xsl:value-of select="$varName"/> + "";
+ </xsl:when>
+ <xsl:otherwise>
+ return <xsl:value-of select="$varName"/>.toString();
+ </xsl:otherwise>
+ </xsl:choose>
+
+ }
+
+ </xsl:if>
+ <xsl:if test="not(enumFacet)">
+ <!-- Generate a tracker only if the min occurs is zero, which means if the user does
+ not bother to set that value, we do not send it -->
+ <xsl:if test="$min=0 or $choice">
+ /* This tracker boolean wil be used to detect whether the user called the set method
+ * for this attribute. It will be used to determine whether to include this field
+ * in the serialized XML
+ */
+ protected boolean <xsl:value-of select="$settingTracker"/> = false ;
+ </xsl:if>
+
+ /**
+ * Auto generated getter method
+ * @return <xsl:value-of select="$propertyType"/>
+ */
+ public <xsl:value-of select="$propertyType"/><xsl:text> </xsl:text>get<xsl:value-of select="$javaName"/>(){
+ return <xsl:value-of select="$varName"/>;
+ }
+
+ <!-- When generating the setters, we have to cater differently for the array!-->
+ <xsl:choose>
+ <xsl:when test="@array">
+ <xsl:variable name="basePropertyType"><xsl:value-of select="@arrayBaseType"/></xsl:variable>
+
+
+ <!-- generate the validator Method, this is specifiacally for validating the arrays-->
+ /**
+ * validate the array for <xsl:value-of select="$javaName"/>
+ */
+ protected void validate<xsl:value-of select="$javaName"/>(<xsl:value-of select="$propertyType"/> param){
+ <xsl:if test="not(@unbound)">
+ if ((param != null) && (param.length > <xsl:value-of select="@maxOccurs"/>)){
+ throw new org.apache.axis2.databinding.ADBException();
+ }
+ </xsl:if>
+ <xsl:if test="$min!=0">
+ if ((param != null) && (param.length < <xsl:value-of select="$min"/>)){
+ throw new org.apache.axis2.databinding.ADBException();
+ }
+ </xsl:if>
+ }
+
+
+ /**
+ * Auto generated setter method
+ * @param param <xsl:value-of select="$javaName"/>
+ */
+ public void set<xsl:value-of select="$javaName"/>(<xsl:value-of select="$propertyType"/> param){
+ <!-- call the validator-->
+ validate<xsl:value-of select="$javaName"/>(param);
+
+ <xsl:if test="$choice">
+ clearAllSettingTrackers();
+ </xsl:if>
+ <xsl:if test="$min=0 or $choice">
+ <!-- the updating of setting tracker for null values should
+ happen if the attribute is marked as nillable. Else
+ the user can set a null value and it is never marked
+ as set
+ -->
+ <xsl:choose>
+ <xsl:when test="@primitive and not(@array)">
+ // setting the primitive attribute to true
+ <xsl:value-of select="$settingTracker"/> = true;
+ </xsl:when>
+ <xsl:otherwise>
+ if (param != null){
+ //update the setting tracker
+ <xsl:value-of select="$settingTracker"/> = true;
+ } else {
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ <xsl:value-of select="$settingTracker"/> = true;
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$settingTracker"/> = false;
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:if>
+ this.<xsl:value-of select="$varName"/>=param;
+ }
+
+ <!--
+
+ we special case the 'array' scenario and generate a
+ convenience method for adding elements one by one to
+ the array. The current implementation is somewhat
+ inefficient but gets the job done.Since a primitive
+ cannot be treated as an object it has to be ignored!
+
+ -->
+ <xsl:if test="not(@primitive)">
+ /**
+ * Auto generated add method for the array for convenience
+ * @param param <xsl:value-of select="$basePropertyType"/>
+ */
+ public void add<xsl:value-of select="$javaName"/>(<xsl:value-of select="$basePropertyType"/> param){
+ if (<xsl:value-of select="$varName"/> == null){
+ <xsl:value-of select="$varName"/> = new <xsl:value-of select="$propertyType"/>{};
+ }
+
+ <xsl:if test="$choice">
+ clearAllSettingTrackers();
+ </xsl:if>
+ <xsl:if test="$min=0 or $choice">
+ //update the setting tracker
+ <xsl:value-of select="$settingTracker"/> = true;
+ </xsl:if>
+
+ java.util.List list =
+ org.apache.axis2.databinding.utils.ConverterUtil.toList(<xsl:value-of select="$varName"/>);
+ list.add(param);
+ this.<xsl:value-of select="$varName"/> =
+ (<xsl:value-of select="$propertyType"/>)list.toArray(
+ new <xsl:value-of select="$basePropertyType"/>[list.size()]);
+
+ }
+ </xsl:if>
+ <!-- end of special casing for the array-->
+
+ </xsl:when>
+ <!-- Non array setter method-->
+ <xsl:otherwise>
+ /**
+ * Auto generated setter method
+ * @param param <xsl:value-of select="$javaName"/>
+ */
+ public void set<xsl:value-of select="$javaName"/>(<xsl:value-of select="$propertyType"/> param){
+ <xsl:if test="$choice">
+ clearAllSettingTrackers();
+ </xsl:if>
+ <xsl:if test="$min=0 or $choice">
+ <xsl:choose>
+ <xsl:when test="@primitive and not(@array)">
+ // setting primitive attribute tracker to true
+ <xsl:value-of select="$settingTracker"/> = true;
+ </xsl:when>
+ <xsl:otherwise>
+ if (param != null){
+ //update the setting tracker
+ <xsl:value-of select="$settingTracker"/> = true;
+ } else {
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ <xsl:value-of select="$settingTracker"/> = true;
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$settingTracker"/> = false;
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="(@restrictionBaseType)">
+ <xsl:choose>
+ <xsl:when test="(@patternFacet)">
+ if ( param.matches( "<xsl:value-of select="$patternFacet"/>" )) {
+ this.<xsl:value-of select="$varName"/>=param;
+ }
+ else {
+ throw new org.apache.axis2.databinding.ADBException();
+ }
+ </xsl:when>
+ <xsl:when test="(@lenFacet)">
+ if ( param.length() == <xsl:value-of select="@lenFacet"/> ) {
+ this.<xsl:value-of select="$varName"/>=param;
+ }
+ else {
+ throw new org.apache.axis2.databinding.ADBException();
+ }
+ </xsl:when>
+ <xsl:when test="(@maxLenFacet) or (@minLenFacet)">
+
+ if ( <xsl:if test="(@minLenFacet)"> (<xsl:value-of select="$minLenFacet"/> < param.length()) </xsl:if>
+ <xsl:if test="(@maxLenFacet)"> <xsl:if test="(@minLenFacet)"> && </xsl:if> (param.length() >= <xsl:value-of select="$maxLenFacet"/>) </xsl:if> ) {
+ this.<xsl:value-of select="$varName"/>=param;
+ }
+ else {
+ throw new org.apache.axis2.databinding.ADBException();
+ }
+ </xsl:when>
+ <xsl:when test="(@maxExFacet) or (@minExFacet) or (@maxInFacet) or (@minInFacet)">
+ if ( <xsl:if test="(@minExFacet)"> <xsl:value-of select="$minExFacet"/> < </xsl:if> <xsl:if test="(@minInFacet)"> <xsl:value-of select="$minInFacet"/> <= </xsl:if> param <xsl:if test="(@maxExFacet)"> > <xsl:value-of select="$maxExFacet"/> </xsl:if> <xsl:if test="(@maxInFacet)"> >= <xsl:value-of select="$maxInFacet"/> </xsl:if> ) {
+
+ this.<xsl:value-of select="$varName"/>=param;
+ }
+ else {
+ throw new org.apache.axis2.databinding.ADBException();
+ }
+ </xsl:when>
+ <xsl:otherwise>
+ this.<xsl:value-of select="$varName"/>=param;
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ this.<xsl:value-of select="$varName"/>=param;
+ </xsl:otherwise>
+ </xsl:choose>
+
+ }
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <!-- end of xsl:if for not(@inherited) -->
+ </xsl:if>
+
+ </xsl:for-each>
+
+ }
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Start of helper generation part of the template-->
+public <xsl:if test="not(@unwrapped) or (@skip-write)">static</xsl:if> class <xsl:value-of select="$helpername"/> {
+
+ <!-- get OMElement methods that allows direct writing. generated inside the helper class-->
+ <xsl:variable name="fullyQualifiedName"><xsl:value-of select="$package"/>.<xsl:value-of select="$name"/></xsl:variable>
+ <xsl:variable name="fullyQualifiedHelperName"><xsl:value-of select="$package"/>.<xsl:value-of select="$helpername"/></xsl:variable>
+
+ private static java.lang.String generatePrefix(java.lang.String namespace) {
+ if(namespace.equals(<xsl:value-of select="$fullyQualifiedName"/>.MY_QNAME.getNamespaceURI())){
+ return <xsl:value-of select="$fullyQualifiedName"/>.MY_QNAME.getPrefix();
+ }
+ return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
+ }
+
+ /**
+ * isReaderMTOMAware
+ * @return true if the reader supports MTOM
+ */
+ public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
+ boolean isReaderMTOMAware = false;
+ <!-- workaround for the issues in the wstx reader!-->
+ try{
+ isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
+ }catch(java.lang.IllegalArgumentException e){
+ isReaderMTOMAware = false;
+ }
+ return isReaderMTOMAware;
+ }
+ <!-- ######################################################################################### -->
+ <!-- get OMElement methods that allows direct writing -->
+ /**
+ *
+ * @param parentQName
+ * @param factory
+ * @return org.apache.axiom.om.OMElement
+ */
+ public static org.apache.axiom.om.OMElement getOMElement(
+ final <xsl:value-of select="$fullyQualifiedName"/> bean,
+ final javax.xml.namespace.QName parentQName,
+ final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
+
+ org.apache.axiom.om.OMDataSource dataSource = getOMDataSource(bean,parentQName, factory);
+
+ <xsl:choose>
+ <xsl:when test="@type">
+ return new org.apache.axiom.om.impl.llom.OMSourcedElementImpl(
+ parentQName,factory,dataSource);
+ </xsl:when>
+ <xsl:otherwise>
+ return new org.apache.axiom.om.impl.llom.OMSourcedElementImpl(
+ <xsl:value-of select="$fullyQualifiedName"/>.MY_QNAME,factory,dataSource);
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+
+ /**
+ *
+ * @param parentQName
+ * @param factory
+ * @return org.apache.axiom.om.OMElement
+ */
+ public static org.apache.axiom.om.OMDataSource getOMDataSource(
+ final <xsl:value-of select="$fullyQualifiedName"/> bean,
+ final javax.xml.namespace.QName parentQName,
+ final org.apache.axiom.om.OMFactory factory)throws org.apache.axis2.databinding.ADBException{
+
+
+ org.apache.axiom.om.OMDataSource dataSource =
+ new org.apache.axis2.databinding.ADBHelperDataSource(bean,parentQName,"<xsl:value-of select="$fullyQualifiedHelperName"/>"){
+
+ public void serialize(
+ javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
+
+ <xsl:value-of select="$fullyQualifiedName"/> typedBean =
+ (<xsl:value-of select="$fullyQualifiedName"/>)bean;
+
+ <xsl:choose>
+ <xsl:when test="@type or @anon">
+ <!-- For a type write the passed in QName first-->
+
+ java.lang.String prefix = parentQName.getPrefix();
+ java.lang.String namespace = parentQName.getNamespaceURI();
+
+ if (namespace != null) {
+ java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
+ if (writerPrefix != null) {
+ xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
+ } else {
+ if (prefix == null) {
+ prefix = generatePrefix(namespace);
+ }
+
+ xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
+ xmlWriter.writeNamespace(prefix, namespace);
+ xmlWriter.setPrefix(prefix, namespace);
+ }
+ } else {
+ xmlWriter.writeStartElement(parentQName.getLocalPart());
+ }
+
+ <!-- write the type attribute if needed -->
+ <xsl:if test="$extension">
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
+ registerPrefix(xmlWriter,"<xsl:value-of select="$nsuri"/>")+":<xsl:value-of select="$originalName"/>",
+ xmlWriter);
+ </xsl:if>
+ <!--First serialize the attributes!-->
+ <xsl:for-each select="property[@attribute]">
+ <xsl:variable name="propertyName"><xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="varName">typedBean.local<xsl:value-of select="@javaname"/></xsl:variable>
+ <xsl:variable name="namespace"><xsl:value-of select="@nsuri"/></xsl:variable>
+ <xsl:choose>
+ <!-- Note - It is assumed that any attributes are OMAttributes-->
+ <xsl:when test="@any and not(@array)">
+ writeAttribute(<xsl:value-of select="$varName"/>.getNamespace().getName(),
+ <xsl:value-of select="$varName"/>.getLocalName(),
+ <xsl:value-of select="$varName"/>.getAttributeValue(),
+ xmlWriter);
+ </xsl:when>
+ <xsl:when test="@any and @array">
+ if (<xsl:value-of select="$varName"/> != null) {
+ for (int i=0;i <<xsl:value-of select="$varName"/>.length;i++){
+ writeAttribute(<xsl:value-of select="$varName"/>[i].getNamespace().getName(),
+ <xsl:value-of select="$varName"/>[i].getLocalName(),
+ <xsl:value-of select="$varName"/>[i].getAttributeValue(),xmlWriter);
+ }
+ }
+ </xsl:when>
+ <!-- there can never be attribute arrays in the normal case-->
+ <xsl:when test="@optional">
+ // optional attribute <xsl:value-of select="$propertyName"/>
+ try {
+ writeAttribute("<xsl:value-of select="$namespace"/>",
+ "<xsl:value-of select="$propertyName"/>",
+ org.apache.axis2.databinding.utils.ConverterUtil.convertToString(<xsl:value-of select="$varName"/>), xmlWriter);
+ } catch (NullPointerException e) {
+ // If <xsl:value-of select="$varName"/> was null
+ // it can not be serialized.
+ }
+ </xsl:when>
+ <xsl:otherwise>
+ writeAttribute("<xsl:value-of select="$namespace"/>",
+ "<xsl:value-of select="$propertyName"/>",
+ org.apache.axis2.databinding.utils.ConverterUtil.convertToString(<xsl:value-of select="$varName"/>),
+ xmlWriter);
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+
+ <!-- Now serialize the elements-->
+ <xsl:for-each select="property[not(@attribute)]">
+ <xsl:variable name="propertyName"><xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="varName">typedBean.local<xsl:value-of select="@javaname"/></xsl:variable>
+ <xsl:variable name="javaname"><xsl:value-of select="@javaname"/></xsl:variable>
+ <xsl:variable name="min"><xsl:value-of select="@minOccurs"/></xsl:variable>
+ <xsl:variable name="namespace"><xsl:value-of select="@nsuri"/></xsl:variable>
+ <xsl:variable name="settingTracker">typedBean.local<xsl:value-of select="@javaname"/>Tracker</xsl:variable>
+
+ <xsl:variable name="propertyType"><xsl:value-of select="@type"/></xsl:variable>
+
+ <xsl:if test="$min=0 or $choice"> if (<xsl:value-of select="$settingTracker"/>){</xsl:if>
+ <xsl:choose>
+ <xsl:when test="@ours and not(@array) and not(@default)">
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ if (<xsl:value-of select="$varName"/>==null){
+
+ java.lang.String namespace2 = "<xsl:value-of select="$namespace"/>";
+
+ if (! namespace2.equals("")) {
+ java.lang.String prefix2 = xmlWriter.getPrefix(namespace2);
+
+ if (prefix2 == null) {
+ prefix2 = generatePrefix(namespace2);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace2);
+ xmlWriter.writeNamespace(prefix2, namespace2);
+ xmlWriter.setPrefix(prefix2, namespace2);
+
+ } else {
+ xmlWriter.writeStartElement(namespace2,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+
+
+ // write the nil attribute
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ xmlWriter.writeEndElement();
+ }else{
+ <xsl:value-of select="@type"/>Helper.getOMDataSource(<xsl:value-of select="$varName"/>,
+ new javax.xml.namespace.QName("<xsl:value-of select="$namespace"/>","<xsl:value-of select="$propertyName"/>"),
+ factory).serialize(xmlWriter);
+ }
+ </xsl:when>
+ <xsl:otherwise>
+ if (<xsl:value-of select="$varName"/>==null){
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ }
+ <xsl:value-of select="@type"/>Helper.getOMDataSource(<xsl:value-of select="$varName"/>,
+ new javax.xml.namespace.QName("<xsl:value-of select="$namespace"/>","<xsl:value-of select="$propertyName"/>"),
+ factory).serialize(xmlWriter);
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@ours and @array and not(@default)">
+ if (<xsl:value-of select="$varName"/>!=null){
+ for (int i = 0;i < <xsl:value-of select="$varName"/>.length;i++){
+ if (<xsl:value-of select="$varName"/>[i] != null){
+ <xsl:value-of select="@arrayBaseType"/>Helper.getOMDataSource(<xsl:value-of select="$varName"/>[i],
+ new javax.xml.namespace.QName("<xsl:value-of select="$namespace"/>","<xsl:value-of select="$propertyName"/>"),
+ factory).serialize(xmlWriter);
+ } else {
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ // write null attribute
+ java.lang.String namespace2 = "<xsl:value-of select="$namespace"/>";
+ if (! namespace2.equals("")) {
+ java.lang.String prefix2 = xmlWriter.getPrefix(namespace2);
+
+ if (prefix2 == null) {
+ prefix2 = generatePrefix(namespace2);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace2);
+ xmlWriter.writeNamespace(prefix2, namespace2);
+ xmlWriter.setPrefix(prefix2, namespace2);
+
+ } else {
+ xmlWriter.writeStartElement(namespace2,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+
+ // write the nil attribute
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ xmlWriter.writeEndElement();
+ </xsl:when>
+ <xsl:when test="$min=0">
+ // we don't have to do any thing since minOccures is zero
+ </xsl:when>
+ <xsl:otherwise>
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+
+ }
+ } else {
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ // write null attribute
+ java.lang.String namespace2 = "<xsl:value-of select="$namespace"/>";
+ if (! namespace2.equals("")) {
+ java.lang.String prefix2 = xmlWriter.getPrefix(namespace2);
+
+ if (prefix2 == null) {
+ prefix2 = generatePrefix(namespace2);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace2);
+ xmlWriter.writeNamespace(prefix2, namespace2);
+ xmlWriter.setPrefix(prefix2, namespace2);
+
+ } else {
+ xmlWriter.writeStartElement(namespace2,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+
+ // write the nil attribute
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ xmlWriter.writeEndElement();
+ </xsl:when>
+ <xsl:otherwise>
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ </xsl:when>
+
+ <xsl:when test="@default and @array">
+ <!-- Note - Assumed to be OMElement-->
+ if (<xsl:value-of select="$varName"/>!=null){
+ for (int i = 0;i < <xsl:value-of select="$varName"/>.length;i++){
+ if (<xsl:value-of select="$varName"/>[i] != null){
+ // write null attribute
+ java.lang.String namespace2 = "<xsl:value-of select="$namespace"/>";
+ if (! namespace2.equals("")) {
+ java.lang.String prefix2 = xmlWriter.getPrefix(namespace2);
+
+ if (prefix2 == null) {
+ prefix2 = generatePrefix(namespace2);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace2);
+ xmlWriter.writeNamespace(prefix2, namespace2);
+ xmlWriter.setPrefix(prefix2, namespace2);
+
+ } else {
+ xmlWriter.writeStartElement(namespace2,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+ <xsl:value-of select="$varName"/>[i].serialize(xmlWriter);
+ xmlWriter.writeEndElement();
+ } else {
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ // write null attribute
+ java.lang.String namespace2 = "<xsl:value-of select="$namespace"/>";
+ if (! namespace2.equals("")) {
+ java.lang.String prefix2 = xmlWriter.getPrefix(namespace2);
+
+ if (prefix2 == null) {
+ prefix2 = generatePrefix(namespace2);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace2);
+ xmlWriter.writeNamespace(prefix2, namespace2);
+ xmlWriter.setPrefix(prefix2, namespace2);
+
+ } else {
+ xmlWriter.writeStartElement(namespace2,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+
+ // write the nil attribute
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ xmlWriter.writeEndElement();
+ </xsl:when>
+ <xsl:when test="$min=0">
+ // we have to do nothing since minOccurs is zero
+ </xsl:when>
+ <xsl:otherwise>
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ }
+ } else {
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ // write null attribute
+ java.lang.String namespace2 = "<xsl:value-of select="$namespace"/>";
+ if (! namespace2.equals("")) {
+ java.lang.String prefix2 = xmlWriter.getPrefix(namespace2);
+
+ if (prefix2 == null) {
+ prefix2 = generatePrefix(namespace2);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace2);
+ xmlWriter.writeNamespace(prefix2, namespace2);
+ xmlWriter.setPrefix(prefix2, namespace2);
+
+ } else {
+ xmlWriter.writeStartElement(namespace2,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+
+ // write the nil attribute
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ xmlWriter.writeEndElement();
+ </xsl:when>
+ <xsl:otherwise>
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+
+ </xsl:when>
+
+ <xsl:when test="@default and not(@array)">
+ <!-- Note - Assumed to be OMElement-->
+ if (<xsl:value-of select="$varName"/>!=null){
+ // write null attribute
+ java.lang.String namespace2 = "<xsl:value-of select="$namespace"/>";
+ if (! namespace2.equals("")) {
+ java.lang.String prefix2 = xmlWriter.getPrefix(namespace2);
+
+ if (prefix2 == null) {
+ prefix2 = generatePrefix(namespace2);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace2);
+ xmlWriter.writeNamespace(prefix2, namespace2);
+ xmlWriter.setPrefix(prefix2, namespace2);
+
+ } else {
+ xmlWriter.writeStartElement(namespace2,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+ <xsl:value-of select="$varName"/>.serialize(xmlWriter);
+ xmlWriter.writeEndElement();
+ } else {
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ // write null attribute
+ java.lang.String namespace2 = "<xsl:value-of select="$namespace"/>";
+ if (! namespace2.equals("")) {
+ java.lang.String prefix2 = xmlWriter.getPrefix(namespace2);
+
+ if (prefix2 == null) {
+ prefix2 = generatePrefix(namespace2);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace2);
+ xmlWriter.writeNamespace(prefix2, namespace2);
+ xmlWriter.setPrefix(prefix2, namespace2);
+
+ } else {
+ xmlWriter.writeStartElement(namespace2,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+
+ // write the nil attribute
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ xmlWriter.writeEndElement();
+ </xsl:when>
+ <xsl:otherwise>
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+
+
+ </xsl:when>
+ <!-- handle non ADB arrays - Not any however -->
+ <xsl:when test="@array and not(@any)">
+ if (<xsl:value-of select="$varName"/>!=null) {
+ namespace = "<xsl:value-of select="$namespace"/>";
+ boolean emptyNamespace = namespace == null || namespace.length() == 0;
+ prefix = emptyNamespace ? null : xmlWriter.getPrefix(namespace);
+ for (int i = 0;i < <xsl:value-of select="$varName"/>.length;i++){
+ <xsl:if test="@primitive">
+ if (!emptyNamespace) {
+ if (prefix == null) {
+ java.lang.String prefix2 = generatePrefix(namespace);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace);
+ xmlWriter.writeNamespace(prefix2, namespace);
+ xmlWriter.setPrefix(prefix2, namespace);
+
+ } else {
+ xmlWriter.writeStartElement(namespace,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+ xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(<xsl:value-of select="$varName"/>[i]));
+ xmlWriter.writeEndElement();
+
+ </xsl:if>
+ <xsl:if test="not(@primitive)">
+ if (<xsl:value-of select="$varName"/>[i] != null){
+ if (!emptyNamespace) {
+ if (prefix == null) {
+ java.lang.String prefix2 = generatePrefix(namespace);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace);
+ xmlWriter.writeNamespace(prefix2, namespace);
+ xmlWriter.setPrefix(prefix2, namespace);
+
+ } else {
+ xmlWriter.writeStartElement(namespace,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+ <xsl:choose>
+ <xsl:when test="$propertyType='java.lang.String[]'">
+ xmlWriter.writeCharacters(<xsl:value-of select="$varName"/>[i]);
+ </xsl:when>
+ <xsl:otherwise>
+ xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(<xsl:value-of select="$varName"/>[i]));
+ </xsl:otherwise>
+ </xsl:choose>
+ xmlWriter.writeEndElement();
+
+ } else {
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ // write null attribute
+ namespace = "<xsl:value-of select="$namespace"/>";
+ if (! namespace.equals("")) {
+ java.lang.String prefix2 = xmlWriter.getPrefix(namespace);
+
+ if (prefix2 == null) {
+ prefix2 = generatePrefix(namespace);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace);
+ xmlWriter.writeNamespace(prefix2, namespace);
+ xmlWriter.setPrefix(prefix2, namespace);
+
+ } else {
+ xmlWriter.writeStartElement(namespace,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ xmlWriter.writeEndElement();
+ </xsl:when>
+ <xsl:when test="$min=0">
+ // we have to do nothing since minOccurs is zero
+ </xsl:when>
+ <xsl:otherwise>
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ </xsl:otherwise>
+
+ </xsl:choose>
+ }
+ </xsl:if>
+ }
+ } else {
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ // write the null attribute
+ // write null attribute
+ java.lang.String namespace2 = "<xsl:value-of select="$namespace"/>";
+ if (! namespace2.equals("")) {
+ java.lang.String prefix2 = xmlWriter.getPrefix(namespace2);
+
+ if (prefix2 == null) {
+ prefix2 = generatePrefix(namespace2);
+
+ xmlWriter.writeStartElement(prefix2,"<xsl:value-of select="$propertyName"/>", namespace2);
+ xmlWriter.writeNamespace(prefix2, namespace2);
+ xmlWriter.setPrefix(prefix2, namespace2);
+
+ } else {
+ xmlWriter.writeStartElement(namespace2,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+
+ // write the nil attribute
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ xmlWriter.writeEndElement();
+ </xsl:when>
+ <xsl:otherwise>
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+
+ </xsl:when>
+
+ <!-- handle non ADB arrays - Any case - any may not be
+ nillable -->
+ <xsl:when test="@array and @any">
+ <!-- Note - Assumed to be OMElement-->
+ if (<xsl:value-of select="$varName"/> != null){
+ for (int i = 0;i < <xsl:value-of select="$varName"/>.length;i++){
+ if (<xsl:value-of select="$varName"/>[i] != null){
+ <xsl:value-of select="$varName"/>[i].serialize(xmlWriter);
+ } else {
+ <xsl:choose>
+ <xsl:when test="$min=0">
+ // we have to do nothing since minOccures zero
+ </xsl:when>
+ <xsl:otherwise>
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ }
+ } else {
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ }
+ </xsl:when>
+ <!-- handle any - non array case-->
+ <xsl:when test="@any">
+ <!-- Note - Assumed to be OMElement-->
+ if (<xsl:value-of select="$varName"/> != null) {
+ <xsl:value-of select="$varName"/>.serialize(xmlWriter);
+ } else {
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ }
+ </xsl:when>
+ <!-- handle all other cases -->
+ <xsl:otherwise>
+ <xsl:if test="not($simple)">
+ namespace = "<xsl:value-of select="$namespace"/>";
+ if (! namespace.equals("")) {
+ prefix = xmlWriter.getPrefix(namespace);
+
+ if (prefix == null) {
+ prefix = generatePrefix(namespace);
+
+ xmlWriter.writeStartElement(prefix,"<xsl:value-of select="$propertyName"/>", namespace);
+ xmlWriter.writeNamespace(prefix, namespace);
+ xmlWriter.setPrefix(prefix, namespace);
+
+ } else {
+ xmlWriter.writeStartElement(namespace,"<xsl:value-of select="$propertyName"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="$propertyName"/>");
+ }
+ </xsl:if>
+ <xsl:choose>
+ <!-- handle the binary case -->
+ <xsl:when test="@binary">
+
+ <!-- Handling the null byte array -->
+ if (<xsl:value-of select="$varName"/>!=null)
+ {
+ org.apache.axiom.om.impl.llom.OMTextImpl <xsl:value-of select="$javaname"/>_binary = new org.apache.axiom.om.impl.llom.OMTextImpl( <xsl:value-of select="$varName"/>, org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+ <xsl:value-of select="$javaname"/>_binary.internalSerializeAndConsume(xmlWriter);
+ }
+
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="not(@primitive)">
+
+ if (<xsl:value-of select="$varName"/>==null){
+ // write the nil attribute
+ <xsl:choose>
+ <xsl:when test="@nillable">
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ </xsl:when>
+ <xsl:otherwise>
+ throw new org.apache.axis2.databinding.ADBException("<xsl:value-of select="$propertyName"/> cannot be null!!");
+ </xsl:otherwise>
+ </xsl:choose>
+ }else{
+
+ <xsl:choose>
+ <xsl:when test="$propertyType='javax.xml.namespace.QName'">
+ java.lang.String namespaceURI =<xsl:value-of select="$varName"/>.getNamespaceURI();
+ if(namespaceURI !=null){
+ prefix = <xsl:value-of select="$varName"/>.getPrefix();
+ if (prefix == null) {
+ prefix = generatePrefix(namespaceURI);
+ }
+ xmlWriter.writeNamespace(prefix,namespaceURI );
+ xmlWriter.writeCharacters(prefix + ":"+ org.apache.axis2.databinding.utils.ConverterUtil.convertToString(<xsl:value-of select="$varName"/>));
+ } else {
+ xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(<xsl:value-of select="$varName"/>));
+ }
+ </xsl:when>
+ <xsl:when test="$propertyType='org.apache.axiom.om.OMElement'">
+ <xsl:value-of select="$varName"/>.serialize(xmlWriter);
+ </xsl:when>
+ <xsl:when test="$propertyType='java.lang.String'">
+ xmlWriter.writeCharacters(<xsl:value-of select="$varName"/>);
+ </xsl:when>
+ <xsl:otherwise>
+ xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(<xsl:value-of select="$varName"/>));
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ </xsl:if>
+ <xsl:if test="@primitive">
+ xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(<xsl:value-of select="$varName"/>));
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="not($simple)">
+ xmlWriter.writeEndElement();
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$min=0 or $choice">}</xsl:if>
+
+ </xsl:for-each>
+ <!-- write the end element for the type-->
+ xmlWriter.writeEndElement();
+ <!-- end of when for type & anon -->
+ </xsl:when>
+
+ <!-- Not a type and not anon. So it better be only one inclusion-->
+ <xsl:otherwise>
+ <!-- if the element is associated with a type, then its gonna be only one -->
+ //We can safely assume an element has only one type associated with it
+ <xsl:variable name="varName">typedBean.local<xsl:value-of select="property/@javaname"/></xsl:variable>
+ <xsl:variable name="nillable" select="property/@nillable"></xsl:variable>
+ <xsl:variable name="primitive" select="property/@primitive"></xsl:variable>
+ <xsl:variable name="propertyType"><xsl:value-of select="property/@type"/></xsl:variable>
+
+ <xsl:choose>
+ <!-- This better be only one!!-->
+ <xsl:when test="property/@ours">
+ <xsl:choose>
+ <xsl:when test="$nillable">
+ if (<xsl:value-of select="$varName"/>==null){
+ java.lang.String namespace = "<xsl:value-of select="property/@nsuri"/>";
+
+ if (! namespace.equals("")) {
+ java.lang.String prefix = xmlWriter.getPrefix(namespace);
+
+ if (prefix == null) {
+ prefix = generatePrefix(namespace);
+
+ xmlWriter.writeStartElement(prefix,"<xsl:value-of select="property/@name"/>", namespace);
+ xmlWriter.writeNamespace(prefix, namespace);
+ xmlWriter.setPrefix(prefix, namespace);
+
+ } else {
+ xmlWriter.writeStartElement(namespace,"<xsl:value-of select="property/@name"/>");
+ }
+
+ } else {
+ xmlWriter.writeStartElement("<xsl:value-of select="property/@name"/>");
+ }
+
+ // write the nil attribute
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ xmlWriter.writeEndElement();
+ }else{
+ <xsl:value-of select="property/@type"/>Helper.getOMDataSource(<xsl:value-of select="$varName"/>,
+ <xsl:value-of select="$fullyQualifiedName"/>.MY_QNAME,
+ factory).serialize(xmlWriter);
+ }
+ </xsl:when>
+ <xsl:otherwise>
+ if (<xsl:value-of select="$varName"/>==null){
+ throw new org.apache.axis2.databinding.ADBException("Property cannot be null!");
+ }
+ <xsl:value-of select="property/@type"/>Helper.getOMDataSource(<xsl:value-of select="$varName"/>,
+ <xsl:value-of select="$fullyQualifiedName"/>.MY_QNAME,
+ factory).serialize(xmlWriter);
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- end of ours block-->
+ <xsl:otherwise>
+ <xsl:if test="not(property/@simple)">
+ java.lang.String namespace = "<xsl:value-of select="property/@nsuri"/>";
+ java.lang.String localName = "<xsl:value-of select="property/@name"/>";
+ </xsl:if>
+ <xsl:if test="property/@simple">
+ java.lang.String namespace = parentQName.getNamespaceURI();
+ java.lang.String localName = parentQName.getLocalPart();
+ </xsl:if>
+ if (! namespace.equals("")) {
+ java.lang.String prefix = xmlWriter.getPrefix(namespace);
+
+ if (prefix == null) {
+ prefix = generatePrefix(namespace);
+
+ xmlWriter.writeStartElement(prefix, localName, namespace);
+ xmlWriter.writeNamespace(prefix, namespace);
+ xmlWriter.setPrefix(prefix, namespace);
+
+ } else {
+ xmlWriter.writeStartElement(namespace, localName);
+ }
+
+ } else {
+ xmlWriter.writeStartElement(localName);
+ }
+ <xsl:if test="not($primitive)">
+ if (<xsl:value-of select="$varName"/>==null){
+ <xsl:choose>
+ <xsl:when test="$nillable">
+ // write the nil attribute
+ writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+ </xsl:when>
+ <xsl:otherwise>
+ throw new org.apache.axis2.databinding.ADBException("Value cannot be null !!");
+ </xsl:otherwise>
+ </xsl:choose>
+ }else{
+ <xsl:choose>
+ <xsl:when test="$propertyType='javax.xml.namespace.QName'">
+ writeQName(<xsl:value-of select="$varName"/>,xmlWriter);
+ </xsl:when>
+ <xsl:when test="$propertyType='org.apache.axiom.om.OMElement'">
+ <xsl:value-of select="$varName"/>.serialize(xmlWriter);
+ </xsl:when>
+ <xsl:when test="$propertyType='java.lang.String'">
+ xmlWriter.writeCharacters(<xsl:value-of select="$varName"/>);
+ </xsl:when>
+ <xsl:otherwise>
+ xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(<xsl:value-of select="$varName"/>));
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ </xsl:if>
+ <xsl:if test="$primitive">
+ xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(<xsl:value-of select="$varName"/>));
+ </xsl:if>
+ xmlWriter.writeEndElement();
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ }
+
+ /**
+ * Util method to write an attribute with the ns prefix
+ */
+ private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
+ java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+ if (xmlWriter.getPrefix(namespace) == null) {
+ xmlWriter.writeNamespace(prefix, namespace);
+ xmlWriter.setPrefix(prefix, namespace);
+
+ }
+
+ xmlWriter.writeAttribute(namespace,attName,attValue);
+
+ }
+
+ /**
+ * Util method to write an attribute without the ns prefix
+ */
+ private void writeAttribute(java.lang.String namespace,java.lang.String attName,
+ java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
+ if (namespace.equals(""))
+ {
+ xmlWriter.writeAttribute(attName,attValue);
+ }
+ else
+ {
+ registerPrefix(xmlWriter, namespace);
+ xmlWriter.writeAttribute(namespace,attName,attValue);
+ }
+ }
+
+ /**
+ * Register a namespace prefix
+ */
+ private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
+ java.lang.String prefix = xmlWriter.getPrefix(namespace);
+
+ if (prefix == null) {
+ prefix = createPrefix();
+
+ while (xmlWriter.getNamespaceContext().getNamespaceURI(prefix) != null) {
+ prefix = createPrefix();
+ }
+
+ xmlWriter.writeNamespace(prefix, namespace);
+ xmlWriter.setPrefix(prefix, namespace);
+ }
+
+ return prefix;
+ }
+
+ /**
+ * Create a prefix
+ */
+ private java.lang.String createPrefix() {
+ return "ns" + (int)Math.random();
+ }
+ };
+
+ return dataSource;
+ }
+
+
+ /**
+ * static method to create the object
+ * Precondition: If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
+ * If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
+ * Postcondition: If this object is an element, the reader is positioned at its end element
+ * If this object is a complex type, the reader is positioned at the end element of its outer element
+ */
+ public static <xsl:value-of select="$fullyQualifiedName"/> parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
+ <xsl:if test="not(property/enumFacet)"><xsl:value-of select="$fullyQualifiedName"/> object = new <xsl:value-of select="$fullyQualifiedName"/>();</xsl:if>
+ <xsl:if test="property/enumFacet"><xsl:value-of select="$name"/> object = null;</xsl:if>
+ int event;
+ java.lang.String nillableValue = null;
+ try {
+ <!-- Advance to our start element, or if we are a complex type, to our first property start element or the outer end element if no properties -->
+ while (!reader.isStartElement() && !reader.isEndElement())
+ reader.next();
+
+ <xsl:if test="@nillable">
+ nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+ if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+ // Skip the element and report the null value. It cannot have subelements.
+ while (!reader.isEndElement())
+ reader.next();
+ <xsl:choose>
+ <xsl:when test="@type or @anon">
+ return null;
+ </xsl:when>
+ <xsl:otherwise>
+ return object;
+ </xsl:otherwise>
+ </xsl:choose>
+
+ }
+ </xsl:if>
+ <xsl:if test="$isType or $anon">
+ if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
[... 1000 lines stripped ...]