${age},${name} Given a context map<string,string> context replaces variables with contexts
Private Static FinalPattern Var_pattern =Pattern.compile ("\\$\\{[^\\}\\$\u0020]+\\}"); Private Static Final intMax_subst = 20; Private StaticString Substitutevars (String expr,map<string,string>Parammap) { if(Expr = =NULL) { return NULL; } Matcher Match= Var_pattern.matcher (""); String Eval=expr; for(ints=0; s<max_subst; s++) {match.reset (eval); if(!Match.find ()) { returneval; } String var=Match.group (); var= Var.substring (2, Var.length ()-1);//Remove ${ .String val =NULL; Try{val=Parammap.get (VAR); } Catch(SecurityException se) {}/*if (val = = null) {val = "AA"; }*/ if(val = =NULL) { returnEval//return literal ${var}: Var is unbound } //Substituteeval = eval.substring (0, Match.start ()) +val+eval.substring (Match.end ()); } Throw NewIllegalStateException ("Variable substitution depth too large:" + Max_subst + " " +expr); }
${var} variable substitution