private Condition createCondition()

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;
    }