Package 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
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.
- Author:
- Alexandre Vasseur, Andy Clement
-
Field Summary
Fields inherited from class org.aspectj.weaver.ConcreteTypeMunger
aspectType, munger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongetMatchingSyntheticMember(Member member)
Looks in the wrapper we have added so that we can find their effective signature if neededboolean
matches(ResolvedType onType)
Match only the aspect for which we actboolean
munge(org.aspectj.weaver.bcel.BcelClassWeaver weaver)
Methods inherited from class org.aspectj.weaver.bcel.BcelTypeMunger
attemptToModifySuperCalls, equals, error, getTypeVariableAliases, hashCode, makeFieldGen, makeMethodGen, parameterizedFor, parameterizeWith, shouldOverwrite, toString
Methods inherited from class org.aspectj.weaver.ConcreteTypeMunger
compareTo, equivalentTo, existsToSupportShadowMunging, fallbackCompareTo, getAspectType, getMunger, getSourceLocation, getWorld, isLateMunger, isTargetTypeParameterized
-
Constructor Details
-
BcelAccessForInlineMunger
-
-
Method Details
-
munge
public boolean munge(org.aspectj.weaver.bcel.BcelClassWeaver weaver)- Overrides:
munge
in classBcelTypeMunger
-
getMatchingSyntheticMember
Looks in the wrapper we have added so that we can find their effective signature if needed- Overrides:
getMatchingSyntheticMember
in classConcreteTypeMunger
-
getSignature
- Overrides:
getSignature
in classConcreteTypeMunger
-
matches
Match only the aspect for which we act- Overrides:
matches
in classConcreteTypeMunger
-