final ClassLoader loader) {
ClassInfo calleeClassInfo = JavaClassInfo.getClassInfo(calleeClass);
// create the callee info
final ReflectionInfo reflectionInfo;
final PointcutType pointcutType;
switch (joinPointType) {
case JoinPointType.STATIC_INITIALIZATION_INT:
reflectionInfo = calleeClassInfo.staticInitializer();
pointcutType = PointcutType.STATIC_INITIALIZATION;
break;
case JoinPointType.METHOD_EXECUTION_INT:
reflectionInfo = calleeClassInfo.getMethod(joinPointHash);
pointcutType = PointcutType.EXECUTION;
break;
case JoinPointType.METHOD_CALL_INT:
reflectionInfo = calleeClassInfo.getMethod(joinPointHash);
pointcutType = PointcutType.CALL;
break;
case JoinPointType.FIELD_GET_INT:
reflectionInfo = calleeClassInfo.getField(joinPointHash);
pointcutType = PointcutType.GET;
break;
case JoinPointType.FIELD_SET_INT:
reflectionInfo = calleeClassInfo.getField(joinPointHash);
pointcutType = PointcutType.SET;
break;
case JoinPointType.CONSTRUCTOR_EXECUTION_INT:
reflectionInfo = calleeClassInfo.getConstructor(joinPointHash);
pointcutType = PointcutType.EXECUTION;
break;
case JoinPointType.CONSTRUCTOR_CALL_INT:
reflectionInfo = calleeClassInfo.getConstructor(joinPointHash);
pointcutType = PointcutType.CALL;
break;
case JoinPointType.HANDLER_INT:
reflectionInfo = calleeClassInfo;
pointcutType = PointcutType.HANDLER;
break;
default:
throw new RuntimeException("Joinpoint type not supported: " + joinPointType);
}
// create the caller info
final ClassInfo callerClassInfo = JavaClassInfo.getClassInfo(callerClass);
final ReflectionInfo withinInfo;
if (TransformationConstants.CLINIT_METHOD_NAME.equals(callerMethodName)) {
withinInfo = callerClassInfo.staticInitializer();
} else if (TransformationConstants.INIT_METHOD_NAME.equals(callerMethodName)) {
withinInfo = callerClassInfo.getConstructor(AsmHelper.calculateConstructorHash(callerMethodDesc));
} else {