in src/main/org/apache/ant/props/ConditionTypeEvaluator.java [103:126]
private Condition createCondition(Project project, String type) {
Condition result = null;
ComponentHelper componentHelper = ComponentHelper.getComponentHelper(project);
Object o = componentHelper.createComponent(type);
if (o instanceof Condition) {
result = (Condition) o;
} else {
List restrictedDefinitions = componentHelper.getRestrictedDefinitions(type);
for (Iterator iter = restrictedDefinitions.iterator(); iter.hasNext();) {
AntTypeDefinition typeDefinition = (AntTypeDefinition) iter.next();
Class exposedClass = typeDefinition.getExposedClass(project);
if (exposedClass != null && Condition.class.isAssignableFrom(exposedClass)) {
try {
result = (Condition) typeDefinition.create(project);
break;
} catch (Exception e) {
project.log("Exception creating type " + typeDefinition, e,
Project.MSG_WARN);
}
}
}
}
return result;
}