fix tests after javabean properties parsing

This commit is contained in:
Stepan Koltsov
2012-02-22 00:38:14 +04:00
parent 71f62f872f
commit 62ddef4734
2 changed files with 20 additions and 8 deletions
@@ -1034,6 +1034,7 @@ public class JavaDescriptorResolver {
PropertyAccessorData getter;
PropertyAccessorData setter;
PropertyAccessorData field;
boolean ext;
}
Map<Object, GroupingValue> map = new HashMap<Object, GroupingValue>();
@@ -1045,9 +1046,14 @@ public class JavaDescriptorResolver {
GroupingValue value = map.get(key);
if (value == null) {
value = new GroupingValue();
value.ext = propertyAccessor.getReceiverType() != null;
map.put(key, value);
}
if (value.ext != (propertyAccessor.getReceiverType() != null)) {
throw new IllegalStateException("internal error, incorrect key");
}
if (propertyAccessor.isGetter()) {
if (value.getter != null) {
throw new IllegalStateException("oops, duplicate key");
@@ -1071,10 +1077,20 @@ public class JavaDescriptorResolver {
Set<VariableDescriptor> r = new HashSet<VariableDescriptor>(1);
// we cannot have more then one property with given name even if java code
// has several fields, getters and setter of different types
if (map.size() == 1) {
GroupingValue members = map.values().iterator().next();
int regularProperitesCount = 0;
for (GroupingValue members : map.values()) {
if (!members.ext) {
++regularProperitesCount;
}
}
for (GroupingValue members : map.values()) {
// we cannot have more then one property with given name even if java code
// has several fields, getters and setter of different types
if (!members.ext && regularProperitesCount > 1) {
continue;
}
boolean isFinal;
if (members.setter == null && members.getter == null) {