public String parse(String source) {
        StringBuffer sbuf = new StringBuffer(source);
        Iterator key_it = argmap.keySet().iterator();

        //skipped = new RangeList();
        // What was this for??
        //process(source, "\"", "\""); // NOI18N
        while (key_it.hasNext()) {
            String it_key = (String) key_it.next();
            String it_obj = formatObject(argmap.get(it_key));
            int it_idx = -1;

            do {
                it_idx = sbuf.toString().indexOf(it_obj, ++it_idx);

                if (it_idx >= 0 /* && !skipped.containsOffset(it_idx) */) {
                    sbuf.replace(it_idx, it_idx + it_obj.length(), ldel + it_key + rdel);

                    //skipped = new RangeList();
                    // What was this for??
                    //process(sbuf.toString(), "\"", "\""); // NOI18N
                }
            } while (it_idx != -1);
        }

        return sbuf.toString();
    }
public String parse ( String source ) { StringBuffer sbuf = new StringBuffer ( source ) ; Iterator key_it = argmap . keySet ( ) . iterator ( ) ; while ( key_it . hasNext ( ) ) { String it_key = ( String ) key_it . next ( ) ; String it_obj = formatObject ( argmap . get ( it_key ) ) ; int it_idx = - 1 ; do { it_idx = sbuf . toString ( ) . indexOf ( it_obj , ++ it_idx ) ; if ( it_idx >= 0 ) { sbuf . replace ( it_idx , it_idx + it_obj . length ( ) , ldel + it_key + rdel ) ; } } while ( it_idx != - 1 ) ; } return sbuf . toString ( ) ; }
Parses the string. Does not yet handle recursion (where
the substituted strings contain {n} references.)

@return New format.