You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by sa...@apache.org on 2012/03/12 14:20:37 UTC

svn commit: r1299667 - in /axis/axis2/java/core/trunk/modules: adb-codegen/src/org/apache/axis2/schema/ adb-codegen/src/org/apache/axis2/schema/template/ adb-codegen/src/org/apache/axis2/schema/writer/ adb-codegen/test-resources/testsuite/ adb/src/org/...

Author: sagara
Date: Mon Mar 12 13:20:37 2012
New Revision: 1299667

URL: http://svn.apache.org/viewvc?rev=1299667&view=rev
Log:
Applied patch for AXIS2-4190.

Modified:
    axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
    axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
    axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl
    axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
    axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
    axis/axis2/java/core/trunk/modules/adb-codegen/test-resources/testsuite/restrictions.xsd
    axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java

Modified: axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java?rev=1299667&r1=1299666&r2=1299667&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java (original)
+++ axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java Mon Mar 12 13:20:37 2012
@@ -63,6 +63,7 @@ public class BeanWriterMetaInfoHolder {
     protected long minLengthFacet = -1;
     protected ArrayList<String> enumFacet = new ArrayList<String>();
     protected String patternFacet = null;
+    protected String totalDigitsFacet = null;
     protected String maxExclusiveFacet = null;
     protected String minExclusiveFacet = null;
     protected String maxInclusiveFacet = null;
@@ -673,6 +674,22 @@ public class BeanWriterMetaInfoHolder {
     }
 
     /**
+     * Sets the totalDigits
+     *
+     * @param totalDigitsFacet
+     */
+    public void setTotalDigitsFacet(String totalDigitsFacet) {
+        this.totalDigitsFacet = totalDigitsFacet;
+    }
+
+    /**
+     *
+     * @return Returns the totalDigits
+     */
+    public String getTotalDigitsFacet() {
+        return this.totalDigitsFacet;
+    }
+    /**
      * Sets the maxExclusive.
      *
      * @param maxExclusiveFacet

Modified: axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java?rev=1299667&r1=1299666&r2=1299667&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java (original)
+++ axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java Mon Mar 12 13:20:37 2012
@@ -73,6 +73,7 @@ import org.apache.ws.commons.schema.XmlS
 import org.apache.ws.commons.schema.XmlSchemaSimpleTypeList;
 import org.apache.ws.commons.schema.XmlSchemaSimpleTypeRestriction;
 import org.apache.ws.commons.schema.XmlSchemaSimpleTypeUnion;
+import org.apache.ws.commons.schema.XmlSchemaTotalDigitsFacet;
 import org.apache.ws.commons.schema.XmlSchemaType;
 import org.xml.sax.InputSource;
 
@@ -1701,6 +1702,11 @@ public class SchemaCompiler {
                 metaInfHolder.setLengthFacet(Integer.parseInt(length.getValue().toString()));
             }
 
+            else if (obj instanceof XmlSchemaTotalDigitsFacet) {
+                XmlSchemaTotalDigitsFacet totalDigits = (XmlSchemaTotalDigitsFacet) obj;
+                metaInfHolder.setTotalDigitsFacet(totalDigits.getValue().toString());
+            }
+
             else if (obj instanceof XmlSchemaMaxExclusiveFacet) {
                 XmlSchemaMaxExclusiveFacet maxEx = (XmlSchemaMaxExclusiveFacet) obj;
                 metaInfHolder.setMaxExclusiveFacet(maxEx.getValue().toString());

Modified: axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl?rev=1299667&r1=1299666&r2=1299667&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl (original)
+++ axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl Mon Mar 12 13:20:37 2012
@@ -110,6 +110,7 @@
             <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="totalDigitsFacet"><xsl:value-of select="@totalDigitsFacet"/></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>
@@ -488,6 +489,15 @@
                                                 throw new java.lang.RuntimeException();
                                             }
                                         </xsl:when>
+                                        <xsl:when test="(@totalDigitsFacet)">
+                                            java.lang.String totalDigitsDecimal = org.apache.axis2.databinding.utils.ConverterUtil.convertToStandardDecimalNotation("<xsl:value-of select="$totalDigitsFacet"/>").toString();
+                                            if (org.apache.axis2.databinding.utils.ConverterUtil.compare(param, totalDigitsDecimal) &gt; 0){
+                                                    this.<xsl:value-of select="$varName"/>=param;
+                                            }
+                                            else {
+                                                throw new java.lang.RuntimeException();
+                                            }
+                                        </xsl:when>
                                         <xsl:when test="@maxExFacet or @minExFacet or @maxInFacet or @minInFacet">
                                             <xsl:if test="@maxExFacet">
                                                  if (org.apache.axis2.databinding.utils.ConverterUtil.compare(param, "<xsl:value-of select="$maxExFacet"/>") &lt; 0){

Modified: axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java?rev=1299667&r1=1299666&r2=1299667&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java (original)
+++ axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java Mon Mar 12 13:20:37 2012
@@ -856,6 +856,10 @@ public class CStructWriter implements Be
                 XSLTUtils.addAttribute(model, "minLenFacet", metainf.getMinLengthFacet() + "", property);
             }
 
+            if (metainf.isRestrictionBaseType(name) && metainf.getTotalDigitsFacet() != null) {
+            XSLTUtils.addAttribute(model, "totalDigitsFacet", metainf.getTotalDigitsFacet() + "", property);
+            }
+
             if (metainf.isRestrictionBaseType(name) && metainf.getMaxExclusiveFacet() != null) {
                 XSLTUtils.addAttribute(model, "maxExFacet", metainf.getMaxExclusiveFacet() + "", property);
             }

Modified: axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java?rev=1299667&r1=1299666&r2=1299667&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java (original)
+++ axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java Mon Mar 12 13:20:37 2012
@@ -991,6 +991,10 @@ public class JavaBeanWriter implements B
             XSLTUtils.addAttribute(model, "minLenFacet", metainf.getMinLengthFacet() + "", property);
         }
 
+        if (metainf.isRestrictionBaseType(name) && metainf.getTotalDigitsFacet() != null) {
+            XSLTUtils.addAttribute(model, "totalDigitsFacet", metainf.getTotalDigitsFacet() + "", property);
+        }
+
         if (metainf.isRestrictionBaseType(name) && metainf.getMaxExclusiveFacet() != null) {
             XSLTUtils.addAttribute(model, "maxExFacet", metainf.getMaxExclusiveFacet() + "", property);
         }

Modified: axis/axis2/java/core/trunk/modules/adb-codegen/test-resources/testsuite/restrictions.xsd
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/test-resources/testsuite/restrictions.xsd?rev=1299667&r1=1299666&r2=1299667&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-codegen/test-resources/testsuite/restrictions.xsd (original)
+++ axis/axis2/java/core/trunk/modules/adb-codegen/test-resources/testsuite/restrictions.xsd Mon Mar 12 13:20:37 2012
@@ -120,6 +120,12 @@
            </xs:restriction>
     </xs:simpleType>
 
+    <xs:simpleType name="RFCProbabilityCodeType4">
+           <xs:restriction base="xs:integer">
+                   <xs:totalDigits value="5"/>
+           </xs:restriction>
+    </xs:simpleType>
+
     <xsd:complexType name="Person">
         <xsd:sequence>
             <xsd:element name="name" type="xsd:string"></xsd:element>

Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java?rev=1299667&r1=1299666&r2=1299667&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java (original)
+++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java Mon Mar 12 13:20:37 2012
@@ -413,6 +413,16 @@ public class ConverterUtil {
         return new BigDecimal(s);
     }
 
+    public static BigDecimal convertToStandardDecimalNotation(String s) {
+        if ((s == null) || s.equals("")){
+            return null;
+        }
+        if (s.startsWith("+")) {
+            s = s.substring(1);
+        }
+        return BigDecimal.valueOf(Math.pow(10, Integer.parseInt(s)));
+    }
+
     public static float convertToFloat(String s) {
         if ((s == null) || s.equals("")){
             return Float.NaN;