You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2012/01/11 12:56:20 UTC

svn commit: r1229965 - /cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java

Author: sergeyb
Date: Wed Jan 11 11:56:19 2012
New Revision: 1229965

URL: http://svn.apache.org/viewvc?rev=1229965&view=rev
Log:
[CXF-4015] Mapping xsd:integer to long

Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java?rev=1229965&r1=1229964&r2=1229965&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/codegen/SourceGenerator.java Wed Jan 11 11:56:19 2012
@@ -112,6 +112,7 @@ public class SourceGenerator {
     private static final Map<String, Class<?>> PARAM_ANNOTATIONS;
     private static final Set<String> RESOURCE_LEVEL_PARAMS;
     private static final Map<String, String> AUTOBOXED_PRIMITIVES_MAP;
+    private static final Map<String, String> XSD_SPECIFIC_TYPE_MAP;
     
     static {
         HTTP_METHOD_ANNOTATIONS = new HashMap<String, Class<?>>();
@@ -140,6 +141,11 @@ public class SourceGenerator {
         AUTOBOXED_PRIMITIVES_MAP.put(float.class.getSimpleName(), Float.class.getSimpleName());
         AUTOBOXED_PRIMITIVES_MAP.put(double.class.getSimpleName(), Double.class.getSimpleName());
         AUTOBOXED_PRIMITIVES_MAP.put(boolean.class.getSimpleName(), Boolean.class.getSimpleName());
+        
+        XSD_SPECIFIC_TYPE_MAP = new HashMap<String, String>();
+        XSD_SPECIFIC_TYPE_MAP.put("string", "String");
+        XSD_SPECIFIC_TYPE_MAP.put("decimal", "java.math.BigInteger");
+        XSD_SPECIFIC_TYPE_MAP.put("integer", "long");
     }
 
     private Comparator<String> importsComparator;
@@ -941,7 +947,11 @@ public class SourceGenerator {
         }
         String[] pair = type.split(":");
         String value = pair.length == 2 ? pair[1] : type;
-        return "string".equals(value) ? "String" : value;
+        if (XSD_SPECIFIC_TYPE_MAP.containsKey(value)) {
+            return XSD_SPECIFIC_TYPE_MAP.get(value);
+        } else {
+            return value;
+        }
     }
     
     private String getElementRefName(Element repElement,