| java.lang.Object com.tc.aspectwerkz.transform.inlining.compiler.AbstractJoinPointCompiler
All known Subclasses: com.tc.aspectwerkz.transform.inlining.compiler.ConstructorCallJoinPointCompiler, com.tc.aspectwerkz.transform.inlining.compiler.MethodExecutionJoinPointCompiler, com.tc.aspectwerkz.transform.inlining.compiler.HandlerJoinPointCompiler, com.tc.aspectwerkz.transform.inlining.compiler.FieldSetJoinPointCompiler, com.tc.aspectwerkz.transform.inlining.compiler.StaticInitializationJoinPointCompiler, com.tc.aspectwerkz.transform.inlining.compiler.MethodCallJoinPointCompiler, com.tc.aspectwerkz.transform.inlining.compiler.ConstructorExecutionJoinPointCompiler, com.tc.aspectwerkz.transform.inlining.compiler.FieldGetJoinPointCompiler,
AbstractJoinPointCompiler | abstract public class AbstractJoinPointCompiler implements JoinPointCompiler,TransformationConstants(Code) | | Abstract base class for the different join point compiler implementations.
Compiles/generates a class that represents a specific join point, a class which invokes the advices
and the target join point statically.
FIXME: depending on hotswap needs, remove the implements StaticJP or JP decision
author: Jonas BonŽr author: Alexandre Vasseur author: Alex Popescu |
DUMP_JP_CLASSES | final public static boolean DUMP_JP_CLASSES(Code) | | |
m_argumentTypes | public Type[] m_argumentTypes(Code) | | |
m_calleeClassName | final protected String m_calleeClassName(Code) | | |
m_calleeClassSignature | final public String m_calleeClassSignature(Code) | | |
m_calleeMemberDesc | final protected String m_calleeMemberDesc(Code) | | |
m_calleeMemberModifiers | final protected int m_calleeMemberModifiers(Code) | | |
m_calleeMemberName | final protected String m_calleeMemberName(Code) | | |
m_callerClassName | final protected String m_callerClassName(Code) | | |
m_callerClassSignature | final public String m_callerClassSignature(Code) | | |
m_callerMethodDesc | final protected String m_callerMethodDesc(Code) | | |
m_callerMethodModifiers | final protected int m_callerMethodModifiers(Code) | | |
m_callerMethodName | final protected String m_callerMethodName(Code) | | |
m_hasAroundAdvices | protected boolean m_hasAroundAdvices(Code) | | |
m_isThisAdvisable | protected boolean m_isThisAdvisable(Code) | | |
m_joinPointClassName | final public String m_joinPointClassName(Code) | | |
m_joinPointHash | final protected int m_joinPointHash(Code) | | |
m_joinPointType | final protected int m_joinPointType(Code) | | |
m_requiresJoinPoint | protected boolean m_requiresJoinPoint(Code) | | |
m_requiresProceedMethod | protected boolean m_requiresProceedMethod(Code) | | |
m_requiresThisOrTarget | protected boolean m_requiresThisOrTarget(Code) | | |
AbstractJoinPointCompiler | public AbstractJoinPointCompiler(CompilationInfo.Model model)(Code) | | Creates a new join point compiler instance.
Parameters: model - the compilation model |
buildInvokeMethodSignature | protected String buildInvokeMethodSignature()(Code) | | Build up the signature of the 'invoke' methods.
|
compile | final public byte[] compile()(Code) | | Compiles a join point class, one specific class for each distinct join point. The compiled join point class
inherits the base join point class.
the generated, compiled and loaded join point class |
createArgumentArrayAt | final public void createArgumentArrayAt(MethodVisitor cv, int stackFreeIndex)(Code) | | Create and load a structure (f.e. array of Object) where args are stored, before setting the Rtti
with it (See addParametersToRttiInstance). The structure is stored at the given stackFreeIndex.
Note: public for createMandatoryMethods in the models
Parameters: cv - Parameters: stackFreeIndex - |
createGetRttiMethod | abstract protected void createGetRttiMethod()(Code) | | Creates the getRtti method
|
createGetSignatureMethod | abstract protected void createGetSignatureMethod()(Code) | | Creates the getSignature method
|
createInlinedJoinPointInvocation | abstract protected void createInlinedJoinPointInvocation(MethodVisitor cv, CompilerInput input)(Code) | | Optimized implementation that does not retrieve the parameters from the join point instance but is passed
directly to the method from the input parameters in the 'invoke' method. Can only be used if no around advice
exists.
Parameters: cv - Parameters: input - |
createInvokeMethod | protected void createInvokeMethod()(Code) | | Creates the 'invoke' method. If possible delegates to the target join point directly, e.g. does not invoke the
'proceed' method (Used when a join point has zero around advice).
The implementation here is suitable for regular JP but not for delegating JP upon hotswap
|
createJoinPointInvocation | abstract protected void createJoinPointInvocation(MethodVisitor cv)(Code) | | Creates a call to the target join point, the parameter(s) to the join point are retrieved from the invocation
local join point instance.
Parameters: cv - |
createJoinPointSpecificFields | abstract protected void createJoinPointSpecificFields()(Code) | | Creates join point specific fields.
|
createSignature | abstract protected void createSignature(MethodVisitor cv)(Code) | | Creates the signature for the join point.
Parameters: cv - |
getCalleeClassSignature | public String getCalleeClassSignature()(Code) | | |
getCallerClassSignature | public String getCallerClassSignature()(Code) | | |
getJoinPointArgumentTypes | abstract protected Type[] getJoinPointArgumentTypes()(Code) | | Returns the join points argument type(s).
|
getJoinPointClassName | public String getJoinPointClassName()(Code) | | |
getJoinPointReturnType | abstract protected Type getJoinPointReturnType()(Code) | | Returns the join points return type.
|
loadArgumentMemberFields | final protected void loadArgumentMemberFields(MethodVisitor cv, int argStartIndex)(Code) | | Loads the argument member fields.
Parameters: cv - Parameters: argStartIndex - |
loadArguments | final protected void loadArguments(MethodVisitor cv)(Code) | | Loads the arguments.
Parameters: cv - |
loadCallee | public static void loadCallee(MethodVisitor cv, CompilerInput input)(Code) | | Helper method to load the callee on the stack
Parameters: cv - Parameters: input - |
loadCaller | public static void loadCaller(MethodVisitor cv, CompilerInput input)(Code) | | Helper method to load the caller on the stack
Parameters: cv - Parameters: input - |
loadJoinPointInstance | public static void loadJoinPointInstance(MethodVisitor cv, CompilerInput input)(Code) | | Loads the join point instance, takes static/non-static join point access into account.
Parameters: cv - Parameters: input - |
requiresCallerOrCallee | public static boolean requiresCallerOrCallee(DeploymentModel deploymentModel)(Code) | | |
|
|