org.aspectj.weaver.bcel
Class BcelAccessForInlineMunger
java.lang.Object
org.aspectj.weaver.ConcreteTypeMunger
org.aspectj.weaver.bcel.BcelTypeMunger
org.aspectj.weaver.bcel.BcelAccessForInlineMunger
- All Implemented Interfaces:
- PartialOrder.PartialComparable
public class BcelAccessForInlineMunger
- extends BcelTypeMunger
Looks for all access to method or field that are not public within the body of the around advices and replace the invocations to
a wrapper call so that the around advice can further be inlined.
This munger is used for @AJ aspects for which inlining wrapper is not done at compile time.
Specific state and logic is kept in the munger ala ITD so that call/get/set pointcuts can still be matched on the wrapped member
thanks to the EffectiveSignature attribute.
Methods inherited from class org.aspectj.weaver.bcel.BcelTypeMunger |
attemptToModifySuperCalls, equals, error, getTypeVariableAliases, hashCode, makeFieldGen, makeMethodGen, parameterizedFor, parameterizeWith, shouldOverwrite, toString |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
BcelAccessForInlineMunger
public BcelAccessForInlineMunger(ResolvedType aspectType)
munge
public boolean munge(org.aspectj.weaver.bcel.BcelClassWeaver weaver)
- Overrides:
munge
in class BcelTypeMunger
getMatchingSyntheticMember
public ResolvedMember getMatchingSyntheticMember(Member member)
- Looks in the wrapper we have added so that we can find their effective signature if needed
- Overrides:
getMatchingSyntheticMember
in class ConcreteTypeMunger
getSignature
public ResolvedMember getSignature()
- Overrides:
getSignature
in class ConcreteTypeMunger
matches
public boolean matches(ResolvedType onType)
- Match only the aspect for which we act
- Overrides:
matches
in class ConcreteTypeMunger