private void resolveAllProperties(Properties props, IXMLElement xmlProp, File file) throws CompilerException
    {
        variableSubstitutor.setBracesRequired(true);
        for (Enumeration e = props.keys(); e.hasMoreElements();)
        {
            String name = (String) e.nextElement();
            String value = props.getProperty(name);
            int mods = -1;
            do
            {
                StringReader read = new StringReader(value);
                StringWriter write = new StringWriter();
                try
                {
                    try
                    {
                        mods = variableSubstitutor.substitute(read, write, SubstitutionType.TYPE_AT);
                    }
                    catch (Exception e1)
                    {
                        throw new IOException(e1.getMessage());
                    }
                    // TODO: check for circular references. We need to know
                    // which
                    // variables were substituted to do that
                    props.put(name, value);
                }
                catch (IOException ex)
                {
                    assertionHelper.parseError(xmlProp, "Faild to load file: " + file.getAbsolutePath(),
                            ex);
                }
            }
            while (mods != 0);
        }
    }
private void resolveAllProperties(Properties props, IXMLElement xmlProp, File file) throws CompilerException
    {
        variableSubstitutor.setBracesRequired(true);
        for (Enumeration e = props.keys(); e.hasMoreElements();)
        {
            String name = (String) e.nextElement();
            String value = props.getProperty(name);
            int mods = -1;
            do
            {
                StringReader read = new StringReader(value);
                StringWriter write = new StringWriter();
                try
                {
                    try
                    {
                        mods = variableSubstitutor.substitute(read, write, SubstitutionType.TYPE_AT);
                    }
                    catch (Exception e1)
                    {
                        throw new IOException(e1.getMessage());
                    }
                   
                   
                   
                    props.put(name, value);
                }
                catch (IOException ex)
                {
                    assertionHelper.parseError(xmlProp, "Faild to load file: " + file.getAbsolutePath(),
                            ex);
                }
            }
            while (mods != 0);
        }
    }
private void resolveallproperties(properties props, ixmlelement xmlprop, file file) throws compilerexception { variablesubstitutor.setbracesrequired(true); for (enumeration e = props.keys(); e.hasmoreelements();) { string name = (string) e.nextelement(); string value = props.getproperty(name); int mods = -1; do { stringreader read = new stringreader(value); stringwriter write = new stringwriter(); try { try { mods = variablesubstitutor.substitute(read, write, substitutiontype.type_at); } catch (exception e1) { throw new ioexception(e1.getmessage()); } props.put(name, value); } catch (ioexception ex) { assertionhelper.parseerror(xmlprop, "faild to load file: " + file.getabsolutepath(), ex); } } while (mods != 0); } }