if (!typeMatches(
this.optionalClassNamePattern,
Descriptor.toClassName(method.getDeclaringIClass().getDescriptor())
)) return;
}
if (!new StringPattern(this.methodNamePattern).matches(method.getName())) return;
IClass[] fpts = method.getParameterTypes();
if (this.optionalArgumentTypeNamePatterns != null) {
String[] atnps = this.optionalArgumentTypeNamePatterns;
if (atnps.length != fpts.length) return;
for (int i = 0; i < atnps.length; ++i) {
if (!new StringPattern(atnps[i]).matches(Descriptor.toClassName(fpts[i].getDescriptor())));
}
}
for (Iterator it = this.predicates.iterator(); it.hasNext();) {
MethodInvocationPredicate mip = (MethodInvocationPredicate) it.next();
try {