if ((fd instanceof AttributeDescriptor) && (fdAlready instanceof AttributeDescriptor) && (((AttributeDescriptor) fd).getType() .equals(((AttributeDescriptor) fdAlready).getType()))) {  } else {
if (!((fd instanceof AttributeDescriptor) && (fdAlready instanceof AttributeDescriptor) && (((AttributeDescriptor) fd).getType() .equals(((AttributeDescriptor) fdAlready).getType())))) {
    private LinkedHashSet findAllFieldDescriptors() throws MetaDataException {        LinkedHashSet set = new LinkedHashSet(getFieldDescriptors());        Map map = new HashMap();        Iterator addIter = set.iterator();        while (addIter.hasNext()) {            FieldDescriptor fd = (FieldDescriptor) addIter.next();            map.put(fd.getName(), fd);        }        Iterator superIter = superDescriptors.iterator();        while (superIter.hasNext()) {            Set toAdd = ((ClassDescriptor) superIter.next()).findAllFieldDescriptors();            addIter = toAdd.iterator();            while (addIter.hasNext()) {                FieldDescriptor fd = (FieldDescriptor) addIter.next();                FieldDescriptor fdAlready = (FieldDescriptor) map.get(fd.getName());                if ((fdAlready != null) && (fd != fdAlready)) {                    if ((fd instanceof AttributeDescriptor)                            && (fdAlready instanceof AttributeDescriptor)                            && (((AttributeDescriptor) fd).getType()                                .equals(((AttributeDescriptor) fdAlready).getType()))) {                        // Compatible, but from different classes. Don't bother adding.                    } else {                        throw new MetaDataException("Incompatible similarly named fields inherited"                                + " from multiple superclasses and interfaces in " + getName());                    }                } else {                    map.put(fd.getName(), fd);                    set.add(fd);                }            }        }        return set;    }