if (isLeafNode() && this instanceof ThrowsExpression) {
return ((ThrowsExpression)this).matchPattern(classMetaData, memberMetaData, exceptionType);
}
else {
try {
JexlContext jexlContext = JexlHelper.createContext();
for (Iterator it = m_expressionRefs.entrySet().iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry)it.next();
String name = (String)entry.getKey();
Expression expression = (Expression)entry.getValue();
if (expression instanceof CflowExpression) {
jexlContext.getVars().put(name, Boolean.TRUE);
continue;
}
// try to find a match somewhere in the class hierarchy (interface or super class)
if (expression.match(classMetaData, memberMetaData, exceptionType)) {
jexlContext.getVars().put(name, Boolean.TRUE);
}
else {
jexlContext.getVars().put(name, Boolean.FALSE);
}
}
return evaluateExpression(jexlContext);
}
catch (Exception e) {