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)