jmsnell     2003/02/27 16:32:22

  Modified:    java/src/org/apache/axis/wsdl/toJava JavaBeanWriter.java
                        Utils.java
  Log:
  Partial Fix http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14137
  
  Changed JavaBeanWriter so that all local variables are prefixed with
  an underscore.  This is required to avoid name collisions that occur
  when schema elements use java keywords for their names.
  
  Revision  Changes    Path
  1.34      +13 -13    
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaBeanWriter.java
  
  Index: JavaBeanWriter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaBeanWriter.java,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- JavaBeanWriter.java       11 Dec 2002 22:38:30 -0000      1.33
  +++ JavaBeanWriter.java       28 Feb 2003 00:32:22 -0000      1.34
  @@ -273,7 +273,7 @@
               String variable = (String) names.get(i + 1);
   
               // Declare the bean element
  -            pw.print("    private " + typeName + " " + variable + ";");
  +            pw.print("    private " + typeName + " " + 
Utils.addUnderscore(variable) + ";");
   
               // label the attribute fields.
               if (elements == null || i >= (elements.size()*2))
  @@ -498,14 +498,14 @@
               if (enableGetters) {
                   pw.println("    public " + typeName + " " +
                              get + capName + "() {");
  -                pw.println("        return " + name + ";");
  +                pw.println("        return " + Utils.addUnderscore(name) + ";");
                   pw.println("    }");
                   pw.println();
               }
               if (enableSetters) {
                   pw.println("    public void set" + capName + "(" +
  -                           typeName + " " + name + ") {");
  -                pw.println("        this." + name + " = " + name + ";");
  +                           typeName + " " + Utils.addUnderscore(name) + ") {");
  +                pw.println("        this." + Utils.addUnderscore(name) + " = " + 
name + ";");
                   pw.println("    }");
                   pw.println();
               }
  @@ -525,7 +525,7 @@
                       if (enableGetters) {
                           pw.println("    public " + compName + " " + get + capName +
                                      "(int i) {");
  -                        pw.println("        return " + name + "[i];");
  +                        pw.println("        return " + Utils.addUnderscore(name) + 
"[i];");
                           pw.println("    }");
                           pw.println();
                       }
  @@ -553,7 +553,7 @@
                           pw.println("            this." + name + " = a;");
                           pw.println("        }");
                           */
  -                        pw.println("        this." + name + "[i] = value;");
  +                        pw.println("        this." + Utils.addUnderscore(name) + 
"[i] = value;");
                           pw.println("    }");
                           pw.println();
                       }
  @@ -609,24 +609,24 @@
                           variableType.equals("double") ||
                           variableType.equals("boolean") ||
                           variableType.equals("byte")) {
  -                    pw.print("            " + variable + " == other." + get +
  +                    pw.print("            " + Utils.addUnderscore(variable) + " == 
other." + get +
                               Utils.capitalizeFirstChar(variable) + "()");
                   } else if (variableType.indexOf("[") >=0) {
                       // Use java.util.Arrays.equals to compare arrays.
  -                    pw.println("            ((" + variable +
  +                    pw.println("            ((" + Utils.addUnderscore(variable) +
                                  "==null && other." + get +
                                  Utils.capitalizeFirstChar(variable) + "()==null) || 
");
  -                    pw.println("             (" + variable + "!=null &&");
  -                    pw.print("              java.util.Arrays.equals(" + variable +
  +                    pw.println("             (" + Utils.addUnderscore(variable) + 
"!=null &&");
  +                    pw.print("              java.util.Arrays.equals(" + 
Utils.addUnderscore(variable) +
                                ", other." + get +
                                Utils.capitalizeFirstChar(variable) + "())))");
   
                   } else {
  -                    pw.println("            ((" + variable +
  +                    pw.println("            ((" + Utils.addUnderscore(variable) +
                                  "==null && other." + get +
                                  Utils.capitalizeFirstChar(variable) + "()==null) || 
");
  -                    pw.println("             (" + variable + "!=null &&");
  -                    pw.print("              " + variable +
  +                    pw.println("             (" + Utils.addUnderscore(variable) + 
"!=null &&");
  +                    pw.print("              " + Utils.addUnderscore(variable) +
                                ".equals(other." + get +
                                Utils.capitalizeFirstChar(variable) + "())))");
                   }
  
  
  
  1.70      +9 -0      xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java
  
  Index: Utils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- Utils.java        6 Feb 2003 15:22:04 -0000       1.69
  +++ Utils.java        28 Feb 2003 00:32:22 -0000      1.70
  @@ -375,6 +375,15 @@
       } // capitalizeFirstChar
   
       /**
  +     * Prepend an underscore to the name
  +     */
  +    public static String addUnderscore(String name) {
  +      if (name == null || name.equals(""))
  +          return name;
  +      return "_" + name;
  +    }
  +
  +    /**
        * Map an XML name to a valid Java identifier
        */
       public static String xmlNameToJava(String name)
  
  
  

Reply via email to