package org.jboss.boot.servlets;
import javax.xml.transform.TransformerException;
import org.apache.xalan.extensions.ExpressionContext;
import org.apache.xml.utils.QName;
import org.apache.xpath.objects.XObject;
import gnu.regexp.RE;
import gnu.regexp.REException;
import gnu.regexp.REMatch;
public class Util
{
static RE variableRE;
public static void setVariableRE(RE variableRE)
{
Util.variableRE = variableRE;
}
public static String replaceVariables(ExpressionContext ctx, String text)
{
String value = text;
try
{
REMatch[] matches = variableRE.getAllMatches(text);
if( matches.length > 0 )
{
StringBuffer tmp = new StringBuffer();
for(int m = 0; m < matches.length; m ++)
{
String prefix = matches[m].toString(1);
String name = matches[m].toString(2);
String suffix = matches[m].toString(3);
QName varName = new QName(name);
XObject var = ctx.getVariableOrParam(varName);
tmp.append(prefix);
if( var != null )
tmp.append(var.toString());
tmp.append(suffix);
}
value = tmp.toString();
}
}
catch(TransformerException e)
{
e.printStackTrace();
}
return value;
}
}