gdaniels    02/03/27 10:29:08

  Modified:    java/src/org/apache/axis/utils JavaUtils.java
               java/test/utils TestJavaUtils.java
  Log:
  Fix xmlToJavaName() to correctly deal with cases where punctuation (i.e.
  "_") starts an identifier that has multiple capital letters.  "_OID" should map
  to "OID", not "oID".
  
  Add a unit test for this.
  
  Revision  Changes    Path
  1.37      +3 -1      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.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- JavaUtils.java    27 Mar 2002 17:53:07 -0000      1.36
  +++ JavaUtils.java    27 Mar 2002 18:29:08 -0000      1.37
  @@ -558,10 +558,12 @@
           // The mapping indicates to convert first
           // character.
           int i = 0;
  +        int firstRealChar = 0;
           while (i < nameLen
                   && (isPunctuation(nameArray[i])
                   || !Character.isJavaIdentifierStart(nameArray[i]))) {
               i++;
  +            firstRealChar++;
           }
           if (i < nameLen) {
               // I've got to check for uppercaseness before lowercasing
  @@ -572,7 +574,7 @@
               // Don't lowercase if this is the first character and the 2nd
               // character is also uppercase, to follow Introspector rules.
               if (Character.isUpperCase(nameArray[i]) &&
  -                ((i != 0) ||
  +                ((i != firstRealChar) ||
                       (nameLen > 1 && Character.isLowerCase(nameArray[1])))) {
                   result.append(Character.toLowerCase(nameArray[i]));
               }
  
  
  
  1.4       +1 -0      xml-axis/java/test/utils/TestJavaUtils.java
  
  Index: TestJavaUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/utils/TestJavaUtils.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestJavaUtils.java        18 Mar 2002 04:01:48 -0000      1.3
  +++ TestJavaUtils.java        27 Mar 2002 18:29:08 -0000      1.4
  @@ -47,6 +47,7 @@
           assertEquals("fooBar", JavaUtils.xmlNameToJava("foo\u06DEbar"));
           assertEquals("fooBar", JavaUtils.xmlNameToJava("FooBar"));
           assertEquals("FOOBar", JavaUtils.xmlNameToJava("FOOBar"));
  +        assertEquals("FOOBar", JavaUtils.xmlNameToJava("__FOOBar"));
   
           // the following cases are ambiguous in JSR-101
           assertEquals("fooBar", JavaUtils.xmlNameToJava("foo bar"));
  
  
  


Reply via email to