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