}
JexlContext jexlCtx = null;
if (ctx instanceof JexlContext) {
jexlCtx = (JexlContext) ctx;
} else {
throw new SCXMLExpressionException(ERR_CTX_TYPE);
}
Expression exp = null;
try {
String evalExpr = inFct.matcher(expr).
replaceAll("_builtin.isMember(_ALL_STATES, ");
evalExpr = dataFct.matcher(evalExpr).
replaceFirst("_builtin.dataNode(_ALL_NAMESPACES, ");
evalExpr = dataFct.matcher(evalExpr).
replaceAll("_builtin.data(_ALL_NAMESPACES, ");
exp = ExpressionFactory.createExpression(evalExpr);
return (Node) exp.evaluate(getEffectiveContext(jexlCtx));
} catch (Exception e) {
throw new SCXMLExpressionException(e);
}
}