if (!expression.getAdvisedClassFilterExpression().match(new ExpressionContext(pointcutType, calleeClassInfo, callerClassInfo))) {
return false;
}
// create the callee info
final ReflectionInfo reflectionInfo;
final PointcutType joinPointType;
switch (emittedJoinPoint.getJoinPointType()) {
case JoinPointType.STATIC_INITIALIZATION_INT:
reflectionInfo = calleeClassInfo.staticInitializer();
joinPointType = PointcutType.STATIC_INITIALIZATION;
break;
case JoinPointType.METHOD_EXECUTION_INT:
reflectionInfo = calleeClassInfo.getMethod(emittedJoinPoint.getJoinPointHash());
joinPointType = PointcutType.EXECUTION;
break;
case JoinPointType.METHOD_CALL_INT:
reflectionInfo = calleeClassInfo.getMethod(emittedJoinPoint.getJoinPointHash());
joinPointType = PointcutType.CALL;
break;
case JoinPointType.FIELD_GET_INT:
reflectionInfo = calleeClassInfo.getField(emittedJoinPoint.getJoinPointHash());
joinPointType = PointcutType.GET;
break;
case JoinPointType.FIELD_SET_INT:
reflectionInfo = calleeClassInfo.getField(emittedJoinPoint.getJoinPointHash());
joinPointType = PointcutType.SET;
break;
case JoinPointType.CONSTRUCTOR_EXECUTION_INT:
reflectionInfo = calleeClassInfo.getConstructor(emittedJoinPoint.getJoinPointHash());
joinPointType = PointcutType.EXECUTION;
break;
case JoinPointType.CONSTRUCTOR_CALL_INT:
reflectionInfo = calleeClassInfo.getConstructor(emittedJoinPoint.getJoinPointHash());
joinPointType = PointcutType.CALL;
break;
case JoinPointType.HANDLER_INT:
reflectionInfo = calleeClassInfo;
joinPointType = PointcutType.HANDLER;
break;
default:
throw new RuntimeException("Joinpoint type not supported: " + emittedJoinPoint.getJoinPointType());
}
// create the caller info
final ReflectionInfo withinInfo;
if (TransformationConstants.CLINIT_METHOD_NAME.equals(emittedJoinPoint.getCallerMethodName())) {
withinInfo = callerClassInfo.staticInitializer();
} else if (TransformationConstants.INIT_METHOD_NAME.equals(emittedJoinPoint.getCallerMethodName())) {
withinInfo = callerClassInfo.getConstructor(AsmHelper.calculateConstructorHash(
emittedJoinPoint.getCallerMethodDesc()