protected Object evaluate()

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