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 gd...@apache.org on 2002/01/07 21:39:55 UTC

cvs commit: xml-axis/java/src/org/apache/axis/wsdl/fromJava ClassRep.java

gdaniels    02/01/07 12:39:55

  Modified:    java/src/org/apache/axis/wsdl/fromJava ClassRep.java
  Log:
  Fix bug when emitting fields - Vector.contains() apparently wasn't calling
  equals() as defined in FieldRep, so the check to see if a field had already
  been defined was not in fact working.  We thus were emitting schema
  elements for both the lowercase and the uppercase versions of fields with
  get/set accessors.  We now use a hashmap to explicitly check the names.
  
  Revision  Changes    Path
  1.5       +25 -24    xml-axis/java/src/org/apache/axis/wsdl/fromJava/ClassRep.java
  
  Index: ClassRep.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/fromJava/ClassRep.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ClassRep.java	3 Jan 2002 20:33:43 -0000	1.4
  +++ ClassRep.java	7 Jan 2002 20:39:55 -0000	1.5
  @@ -58,6 +58,7 @@
   import java.lang.reflect.Modifier;
   import java.lang.reflect.Field;
   import java.util.Vector;
  +import java.util.HashMap;
   
   import org.apache.axis.utils.JavapUtils;
   
  @@ -130,6 +131,7 @@
       private Vector   _interfaces = new Vector();
       private Vector   _methods    = new Vector();
       private Vector   _fields     = new Vector();
  +    private HashMap  _fieldNames = new HashMap();
       
   
       /**
  @@ -239,17 +241,18 @@
               if (Modifier.isPublic(mod) ||
                   isJavaBeanNormal(cls, f.getName(), f.getType()) ||
                   isJavaBeanIndexed(cls, f.getName(), f.getType())) {
  -                if (!isJavaBeanIndexed(cls, f.getName(), f.getType())) {
  -                    FieldRep fr = new FieldRep(f);
  -                    if (!_fields.contains(fr))
  -                        _fields.add(fr);
  -                } else {
  -                    FieldRep fr = new FieldRep();
  -                    fr.setName(f.getName());
  -                    fr.setType(f.getType().getComponentType());
  -                    fr.setIndexed(true);
  -                    if (!_fields.contains(fr))
  -                        _fields.add(fr);
  +                if (_fieldNames.get(f.getName().toLowerCase()) == null) {
  +                    FieldRep fr;
  +                    if (!isJavaBeanIndexed(cls, f.getName(), f.getType())) {
  +                        fr = new FieldRep(f);
  +                    } else {
  +                        fr = new FieldRep();
  +                        fr.setName(f.getName());
  +                        fr.setType(f.getType().getComponentType());
  +                        fr.setIndexed(true);
  +                    }
  +                    _fields.add(fr);
  +                    _fieldNames.put(f.getName().toLowerCase(), fr);
                   }
               }
           }
  @@ -268,21 +271,19 @@
                       name = name.substring(3);
                   }
                   Class type = method.getReturnType();
  -                if (isJavaBeanNormal(cls, name, type) ||
  -                    isJavaBeanIndexed(cls, name, type)) {
  -                    if (!isJavaBeanIndexed(cls, name, type)) {
  +                if (_fieldNames.get(name.toLowerCase()) == null) {
  +                    if (isJavaBeanNormal(cls, name, type) ||
  +                            isJavaBeanIndexed(cls, name, type)) {
                           FieldRep fr = new FieldRep();
                           fr.setName(name);
  -                        fr.setType(type);
  -                        if (!_fields.contains(fr))
  -                            _fields.add(fr);
  -                    } else {
  -                        FieldRep fr = new FieldRep();
  -                        fr.setName(name);
  -                        fr.setType(type.getComponentType());
  -                        fr.setIndexed(true);
  -                        if (!_fields.contains(fr))
  -                            _fields.add(fr);
  +                        if (!isJavaBeanIndexed(cls, name, type)) {
  +                            fr.setType(type);
  +                        } else {
  +                            fr.setType(type.getComponentType());
  +                            fr.setIndexed(true);
  +                        }
  +                        _fields.add(fr);
  +                        _fieldNames.put(name.toLowerCase(), fr);
                       }
                   }