scheu       02/01/31 13:53:22

  Modified:    java/src/org/apache/axis/deployment/wsdd
                        WSDDTypeMapping.java
               java/src/org/apache/axis/utils JavaUtils.java
               java/src/org/apache/axis/wsdl/toJava JavaDeployWriter.java
  Log:
  Added a getLoadableClassName(String text) method to JavaUtils.
  
  This returns the proper class name for the ClassLoader.  For example:
  
  getLoadableClassName("my.Foo[][]") returns:
  
  "[Lmy.Foo;"
  
  This change was necessary to support array specifications in the
  WSDD file.
  
  Revision  Changes    Path
  1.20      +2 -2      
xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTypeMapping.java
  
  Index: WSDDTypeMapping.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTypeMapping.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- WSDDTypeMapping.java      31 Jan 2002 03:26:08 -0000      1.19
  +++ WSDDTypeMapping.java      31 Jan 2002 21:53:22 -0000      1.20
  @@ -225,9 +225,9 @@
                                           typeQName.getNamespaceURI(),
                                           WSDDConstants.WSDD_JAVA));
               }
  -            
  +            String loadName = 
JavaUtils.getLoadableClassName(typeQName.getLocalPart());
               ClassLoader cl = Thread.currentThread().getContextClassLoader();
  -            return cl.loadClass(typeQName.getLocalPart());
  +            return cl.loadClass(loadName);
           }
           
           throw new ClassNotFoundException(JavaUtils.getMessage("noTypeQName00"));
  
  
  
  1.23      +36 -0     xml-axis/java/src/org/apache/axis/utils/JavaUtils.java
  
  Index: JavaUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/JavaUtils.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- JavaUtils.java    26 Jan 2002 02:50:52 -0000      1.22
  +++ JavaUtils.java    31 Jan 2002 21:53:22 -0000      1.23
  @@ -268,6 +268,42 @@
        }
   
       /**
  +     * Converts text of the form
  +     * Foo[] to the proper class name for loading [LFoo
  +     */
  +    public static String getLoadableClassName(String text) {
  +        if (text == null || 
  +            text.indexOf("[") < 0 ||
  +            text.charAt(0) == '[')
  +            return text;
  +        String className = text.substring(0,text.indexOf("["));
  +        if (className.equals("byte"))
  +            className = "B";
  +        else if (className.equals("char"))
  +            className = "C";
  +        else if (className.equals("double"))
  +            className = "D";
  +        else if (className.equals("float"))
  +            className = "F";
  +        else if (className.equals("int"))
  +            className = "I";
  +        else if (className.equals("long"))
  +            className = "J";
  +        else if (className.equals("short"))
  +            className = "S";
  +        else if (className.equals("boolean"))
  +            className = "Z";
  +        else
  +            className = "L" + className + ";";
  +        int i = text.indexOf("]");
  +        while (i > 0) {
  +            className = "[" + className;
  +            i = text.indexOf("]", i+1);
  +        }
  +        return className;
  +    }
  +
  +    /**
        * Map an XML name to a valid Java identifier
        */
       public static String xmlNameToJava(String name)
  
  
  
  1.15      +1 -2      
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java
  
  Index: JavaDeployWriter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- JavaDeployWriter.java     31 Jan 2002 18:38:45 -0000      1.14
  +++ JavaDeployWriter.java     31 Jan 2002 21:53:22 -0000      1.15
  @@ -149,8 +149,7 @@
               TypeEntry type = (TypeEntry) types.elementAt(i);
               if (type.getBaseType() == null && type.isReferenced()
                   && !type.isOnlyLiteralReferenced()
  -                && !type.getName().endsWith("[]")) {
  -                //  && !(type instanceof CollectionType)) {
  +                && !(type instanceof CollectionType)) {
                   pw.println("  <typeMapping");
                   pw.println("    xmlns:ns=\"" + type.getQName().getNamespaceURI() + 
"\"");
                   pw.println("    qname=\"ns:" + type.getQName().getLocalPart() + 
'"');
  
  
  


Reply via email to