/** * */ package jframe.core.conf; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * * @author dzh * @date Oct 11, 2013 1:12:37 PM * @since 1.0 */ public class VarHandler { public static final Pattern P_VAR = Pattern.compile(Config.REGEX_VAR, Pattern.CASE_INSENSITIVE); private Config _config; public VarHandler(Config config) { this._config = config; } /** * 利用config中的变量值,替换value里的变量 * * @param v * @return */ public String replace(String input) { return replace(_config, input); } /** * * @param system * jvm系统变量,一般是System.getProperty * @param input * @return */ public String replace(Config config, String input) { Matcher m = P_VAR.matcher(input); String var = null; String val = null; while (m.find()) { var = m.group(1); val = config.getConfig(var); if (val == null) { // LOG.warn("Not found variable's value: " + var); continue; } input = input.replaceAll("\\$\\{" + var + "\\}", val); } return input; } public boolean hasVar(String input) { return P_VAR.matcher(input).find(); } }