public static String expandProperties()

in src/com/intellij/idea/plugin/hybris/system/type/model/generator/Util.java [192:230]


    public static String expandProperties(final String str, final Map<String, String> map) {
        if (str.indexOf("${") == -1) {
            return str;
        }
        int state = 0;
        final StringBuilder result = new StringBuilder();
        final StringBuilder variable = new StringBuilder();
        for (int i = 0; i < str.length(); i++) {
            final char ch = str.charAt(i);
            switch (state) {
                case 0:
                    if (ch == '$') {
                        state = 1;
                    } else {
                        result.append(ch);
                    }
                    break;
                case 1:
                    if (ch == '{') {
                        state = 2;
                        variable.setLength(0);
                    } else {
                        state = 0;
                        result.append('$').append(ch);
                    }
                    break;
                case 2:
                    if (ch == '}') {
                        final String value = map.get(variable.toString());
                        result.append(value == null ? variable : value);
                        state = 0;
                    } else {
                        variable.append(ch);
                    }
                    break;
            }
        }
        return result.toString();
    }