final ClassMetaData classMetaData,
final MethodMetaData methodMetaData) {
for (Iterator it = m_pointcutPatterns.entrySet().iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry)it.next();
String name = (String)entry.getKey();
PointcutPatternTuple pointcutPattern = (PointcutPatternTuple)entry.getValue();
// try to find a match somewhere in the class hierarchy (interface or super class)
if (pointcutPattern.isHierarchical()) {
matchMethodPointcutSuperClasses(
jexlContext, name, classMetaData, methodMetaData, pointcutPattern);
}
// match the class only
else if (pointcutPattern.getClassPattern().matches(classMetaData.getName()) &&
((MethodPattern)pointcutPattern.getPattern()).matches(methodMetaData)) {
jexlContext.getVars().put(name, Boolean.TRUE);
}
else {
jexlContext.getVars().put(name, Boolean.FALSE);
}