*/
public AbstractJoinPointCompiler(final CompilationInfo.Model model) {
m_joinPointClassName = model.getJoinPointClassName();
final EmittedJoinPoint emittedJoinPoint = model.getEmittedJoinPoint();
final AdviceInfoContainer advices = model.getAdviceInfoContainer();
m_joinPointHash = emittedJoinPoint.getJoinPointHash();
m_joinPointType = emittedJoinPoint.getJoinPointType();
m_callerMethodName = emittedJoinPoint.getCallerMethodName();
m_callerMethodDesc = emittedJoinPoint.getCallerMethodDesc();
m_callerMethodModifiers = emittedJoinPoint.getCallerMethodModifiers();
m_calleeMemberName = emittedJoinPoint.getCalleeMemberName();
m_calleeMemberDesc = emittedJoinPoint.getCalleeMemberDesc();
m_calleeMemberModifiers = emittedJoinPoint.getCalleeMemberModifiers();
// NOTE: internal compiler class name format is ALWAYS using '/'
m_callerClassName = emittedJoinPoint.getCallerClassName().replace('.', '/');
m_calleeClassName = emittedJoinPoint.getCalleeClassName().replace('.', '/');
m_callerClassSignature = L + emittedJoinPoint.getCallerClassName().replace('.', '/') + SEMICOLON;
m_calleeClassSignature = L + emittedJoinPoint.getCalleeClassName().replace('.', '/') + SEMICOLON;
m_argumentTypes = getJoinPointArgumentTypes();
m_returnType = getJoinPointReturnType();
initialize(advices);