abc.weaving.weaver.around
Class AdviceMethod
java.lang.Object
abc.weaving.weaver.around.AdviceMethod
public class AdviceMethod
- extends java.lang.Object
|
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 |
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
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()