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) > 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"/>") < 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;