1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.parsing;
17
18 import java.util.Properties;
19
20
21
22
23 public class PropertyParser {
24
25 private PropertyParser() {
26
27 }
28
29 public static String parse(String string, Properties variables) {
30 VariableTokenHandler handler = new VariableTokenHandler(variables);
31 GenericTokenParser parser = new GenericTokenParser("${", "}", handler);
32 return parser.parse(string);
33 }
34
35 private static class VariableTokenHandler implements TokenHandler {
36 private Properties variables;
37
38 public VariableTokenHandler(Properties variables) {
39 this.variables = variables;
40 }
41
42 @Override
43 public String handleToken(String content) {
44 if (variables != null && variables.containsKey(content)) {
45 return variables.getProperty(content);
46 }
47 return "${" + content + "}";
48 }
49 }
50 }