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 am...@apache.org on 2007/11/26 11:04:52 UTC

svn commit: r598197 - in /webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema: CompilerOptions.java ExtensionUtility.java SchemaConstants.java XSD2Java.java util/PrimitiveTypeWrapper.java writer/JavaBeanWriter.java

Author: amilas
Date: Mon Nov 26 02:04:44 2007
New Revision: 598197

URL: http://svn.apache.org/viewvc?rev=598197&view=rev
Log:
Add code to use wrapper types instead of primitive types if nillable and minOccurs is zero.

Modified:
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/CompilerOptions.java
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/ExtensionUtility.java
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaConstants.java
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/XSD2Java.java
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/util/PrimitiveTypeWrapper.java
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/CompilerOptions.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/CompilerOptions.java?rev=598197&r1=598196&r2=598197&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/CompilerOptions.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/CompilerOptions.java Mon Nov 26 02:04:44 2007
@@ -46,6 +46,7 @@
     private boolean generateAll = false;
 
     private boolean offStrictValidation = false;
+    private boolean isUseWrapperClasses = false;
 
     /**
      * Package for the mapper
@@ -195,5 +196,11 @@
         this.offStrictValidation = offStrictValidation;
     }
 
+    public boolean isUseWrapperClasses() {
+        return isUseWrapperClasses;
+    }
 
+    public void setUseWrapperClasses(boolean useWrapperClasses) {
+        this.isUseWrapperClasses = useWrapperClasses;
+    }
 }

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/ExtensionUtility.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/ExtensionUtility.java?rev=598197&r1=598196&r2=598197&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/ExtensionUtility.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/ExtensionUtility.java Mon Nov 26 02:04:44 2007
@@ -584,6 +584,10 @@
             options.setOffStrictValidation(true);
         }
 
+        if (propertyMap.containsKey(SchemaConstants.SchemaCompilerArguments.USE_WRAPPER_CLASSES)){
+            options.setUseWrapperClasses(true);
+        }
+
         //set helper mode
         //this becomes effective only if the classes are unpacked
         if (!options.isWrapClasses()) {

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaConstants.java?rev=598197&r1=598196&r2=598197&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaConstants.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaConstants.java Mon Nov 26 02:04:44 2007
@@ -110,7 +110,10 @@
         public static final String PACKAGE = "p";
         public static final String MAPPER_PACKAGE = "mp";
         public static final String HELPER_MODE = "h";
+        // this option is used to set minOccurs =0 for all the elements
         public static final String OFF_STRICT_VALIDATION = "osv";
+        // this option is used to use Wrapper classes for primitives
+        public static final String USE_WRAPPER_CLASSES = "uwc";
 
     }
 

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/XSD2Java.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/XSD2Java.java?rev=598197&r1=598196&r2=598197&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/XSD2Java.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/XSD2Java.java Mon Nov 26 02:04:44 2007
@@ -83,6 +83,8 @@
             //there's no point in not writing the classes here.
              compilerOptions.setWriteOutput(true);
 
+//             compilerOptions.setUseWrapperClasses(true);
+
             SchemaCompiler compiler = new SchemaCompiler(compilerOptions);
             compiler.compile(currentSchema);
     }

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/util/PrimitiveTypeWrapper.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/util/PrimitiveTypeWrapper.java?rev=598197&r1=598196&r2=598197&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/util/PrimitiveTypeWrapper.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/util/PrimitiveTypeWrapper.java Mon Nov 26 02:04:44 2007
@@ -47,6 +47,13 @@
      * @param primitiveclassName
      */
     public static String getWrapper(String primitiveclassName){
-        return (String) primitiveTypeWrappersMap.get(primitiveclassName);
+        String returnClassName = null;
+        if (primitiveclassName.trim().endsWith("[]")) {
+            String className = primitiveclassName.substring(0, primitiveclassName.length() - 2);
+            returnClassName = primitiveTypeWrappersMap.get(className) + "[]";
+        } else {
+            returnClassName = (String) primitiveTypeWrappersMap.get(primitiveclassName);
+        }
+        return returnClassName;
     }
 }

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java?rev=598197&r1=598196&r2=598197&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java Mon Nov 26 02:04:44 2007
@@ -44,8 +44,6 @@
 import java.io.*;
 import java.util.*;
 
-import com.ibm.wsdl.util.xml.DOM2Writer;
-
 /**
  * Java Bean writer for the schema compiler.
  */
@@ -69,6 +67,8 @@
 
     private boolean writeClasses = false;
 
+    private boolean isUseWrapperClasses = false;
+
     private String packageName = null;
 
     private File rootDir;
@@ -149,6 +149,8 @@
             initWithFile(options.getOutputLocation());
             packageName = options.getPackageName();
             writeClasses = options.isWriteOutput();
+            isUseWrapperClasses = options.isUseWrapperClasses();
+
             if (!writeClasses) {
                 wrapClasses = false;
             } else {
@@ -491,6 +493,7 @@
         XSLTUtils.addAttribute(model, "originalName", originalName, rootElt);
         XSLTUtils.addAttribute(model, "package", packageName, rootElt);
         XSLTUtils.addAttribute(model, "nsuri", qName.getNamespaceURI(), rootElt);
+        XSLTUtils.addAttribute(model, "isUseWrapperClasses", isUseWrapperClasses? "yes" : "false", rootElt);
         XSLTUtils.addAttribute(model, "nsprefix", isSuppressPrefixesMode ? "" : getPrefixForURI(qName
                 .getNamespaceURI(), qName.getPrefix()), rootElt);
 
@@ -730,9 +733,18 @@
                 //XSLTUtils.addAttribute(model, "restricted", "yes", property);
             }
 
+            long minOccurs = metainf.getMinOccurs(name);
+            if (PrimitiveTypeFinder.isPrimitive(javaClassNameForElement)
+                    && isUseWrapperClasses && ((minOccurs == 0) || metainf.isNillable(name))) {
+                 // if this is an primitive class and user wants to use the
+                 // wrapper type we change the type to wrapper type.
+                 javaClassNameForElement = PrimitiveTypeWrapper.getWrapper(javaClassNameForElement);
+            }
+
             XSLTUtils.addAttribute(model, "type", javaClassNameForElement, property);
 
             if (PrimitiveTypeFinder.isPrimitive(javaClassNameForElement)) {
+
                 XSLTUtils.addAttribute(model, "primitive", "yes", property);
             }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org