public String parsePropertyName()

in src/main/org/apache/ant/props/NestedPropertyExpander.java [39:67]


    public String parsePropertyName(String value, ParsePosition pos,
            ParseNextProperty parseNextProperty) {
        int start = pos.getIndex();
        if (value.length() - start >= 3
            && '$' == value.charAt(start) && '{' == value.charAt(start + 1)) {
            parseNextProperty.getProject().log("Attempting nested property processing",
                    Project.MSG_DEBUG);
            pos.setIndex(start + 2);
            StringBuffer sb = new StringBuffer();
            for (int c = pos.getIndex(); c < value.length(); c = pos.getIndex()) {
                if (value.charAt(c) == '}') {
                    pos.setIndex(c + 1);
                    return sb.toString();
                }
                Object o = parseNextProperty.parseNextProperty(value, pos);
                if (o != null) {
                    sb.append(o);
                } else {
                    // be aware that the parse position may now have changed;
                    // update:
                    c = pos.getIndex();
                    sb.append(value.charAt(c));
                    pos.setIndex(c + 1);
                }
            }
        }
        pos.setIndex(start);
        return null;
    }