abc.weaving.weaver.around
Class AdviceMethod

java.lang.Object
  extended by abc.weaving.weaver.around.AdviceMethod

public class AdviceMethod
extends java.lang.Object


Nested Class Summary
static class AdviceMethod.InterfaceInfo
           
 
Field Summary
 Body adviceBody
           
 java.util.Map adviceLocalClasses
           
 java.util.Set adviceMethodInvocationStmts
           
 Chain adviceStatements
           
 AroundWeaver aroundWeaver
           
 boolean bAlwaysStaticProceedMethod
           
 boolean bHasBeenWovenInto
           
 java.util.Set directInvocationStmts
           
 boolean hasDynamicProceed
           
 java.util.List originalAdviceFormalTypes
           
 SootMethod sootAdviceMethod
           
 java.util.HashSet staticProceedTypes
           
 
Method Summary
 void doWeave(AdviceApplication adviceAppl, SootMethod shadowMethod)
           
 void fixProceedMethodSuperCalls(SootClass newAccessClass)
          Called when a new access method has been added to a class.
 void generateProceedCalls(boolean bStaticProceedMethod, boolean bClosure, ProceedMethod proceedMethod)
           
 Type getAdviceReturnType()
           
 java.util.List getAllProceedMethods()
           
static java.util.List getOriginalAdviceFormals(AdviceDecl adviceDecl)
           
 ProceedMethod getProceedMethod(java.lang.String className, boolean bStatic)
           
 int getStaticDispatchTypeID(Type type)
           
 int getUniqueShadowID()
           
 int[] modifyAdviceMethod(java.util.List contextParameters, ProceedMethod proceedMethod, AroundWeaver.ObjectBox contextActualsResult, boolean bStaticProceedMethod, boolean bUseClosureObject)
           
 void setClosureProceedMethod(ProceedMethod m)
           
 void setProceedMethod(java.lang.String className, boolean bStatic, ProceedMethod proceedMethod)
           
 void validate()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

aroundWeaver

public final AroundWeaver aroundWeaver

sootAdviceMethod

public final SootMethod sootAdviceMethod

adviceBody

public final Body adviceBody

adviceStatements

public final Chain adviceStatements

originalAdviceFormalTypes

public final java.util.List originalAdviceFormalTypes

staticProceedTypes

public final java.util.HashSet staticProceedTypes

hasDynamicProceed

public boolean hasDynamicProceed

bAlwaysStaticProceedMethod

public final boolean bAlwaysStaticProceedMethod
See Also:
Constant Field Values

bHasBeenWovenInto

public boolean bHasBeenWovenInto

adviceMethodInvocationStmts

public final java.util.Set adviceMethodInvocationStmts

directInvocationStmts

public final java.util.Set directInvocationStmts

adviceLocalClasses

public final java.util.Map adviceLocalClasses
Method Detail

doWeave

public void doWeave(AdviceApplication adviceAppl,
                    SootMethod shadowMethod)

validate

public void validate()

fixProceedMethodSuperCalls

public void fixProceedMethodSuperCalls(SootClass newAccessClass)
Called when a new access method has been added to a class. Looks at all other access methods of the advice method and adds/changes super() calls where necessary

Parameters:
interfaceName -
newAccessClass -

getStaticDispatchTypeID

public int getStaticDispatchTypeID(Type type)

modifyAdviceMethod

public int[] modifyAdviceMethod(java.util.List contextParameters,
                                ProceedMethod proceedMethod,
                                AroundWeaver.ObjectBox contextActualsResult,
                                boolean bStaticProceedMethod,
                                boolean bUseClosureObject)

generateProceedCalls

public void generateProceedCalls(boolean bStaticProceedMethod,
                                 boolean bClosure,
                                 ProceedMethod proceedMethod)

getAdviceReturnType

public Type getAdviceReturnType()

getOriginalAdviceFormals

public static java.util.List getOriginalAdviceFormals(AdviceDecl adviceDecl)

getAllProceedMethods

public java.util.List getAllProceedMethods()

getProceedMethod

public ProceedMethod getProceedMethod(java.lang.String className,
                                      boolean bStatic)

setClosureProceedMethod

public void setClosureProceedMethod(ProceedMethod m)

setProceedMethod

public void setProceedMethod(java.lang.String className,
                             boolean bStatic,
                             ProceedMethod proceedMethod)

getUniqueShadowID

public int getUniqueShadowID()