in src/main/org/apache/ant/props/ConditionTypeEvaluator.java [76:101]
protected Object evaluate(String[] groups, PropertyHelper propertyHelper) {
Project p = propertyHelper.getProject();
boolean negate = false;
if ("!".equals(groups[1])) {
negate = true;
}
Condition cond = createCondition(p, groups[2]);
if (cond != null) {
if (groups[3].length() > 0) {
Object realObject = TypeAdapter.class.isInstance(cond) ? ((TypeAdapter) cond)
.getProxy() : cond;
if (realObject == null) {
throw new IllegalStateException(
"Found null proxy object for adapted condition " + cond.toString());
}
IntrospectionHelper ih = IntrospectionHelper.getHelper(realObject.getClass());
String[] attributes = COMMA.split(groups[3]);
for (int i = 0; i < attributes.length; i++) {
String[] keyValue = EQ.split(attributes[i]);
ih.setAttribute(p, realObject, keyValue[0].trim(), keyValue[1].trim());
}
}
return Boolean.valueOf(cond.eval() ^ negate);
}
return null;
}