org.aspectj.weaver.bcel
Class BcelAccessForInlineMunger

java.lang.Object
  extended by org.aspectj.weaver.ConcreteTypeMunger
      extended by org.aspectj.weaver.bcel.BcelTypeMunger
          extended by 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.


Field Summary
 
Fields inherited from class org.aspectj.weaver.ConcreteTypeMunger
aspectType, munger
 
Constructor Summary
BcelAccessForInlineMunger(ResolvedType aspectType)
           
 
Method Summary
 ResolvedMember getMatchingSyntheticMember(Member member)
          Looks in the wrapper we have added so that we can find their effective signature if needed
 ResolvedMember getSignature()
           
 boolean matches(ResolvedType onType)
          Match only the aspect for which we act
 boolean 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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BcelAccessForInlineMunger

public BcelAccessForInlineMunger(ResolvedType aspectType)
Method Detail

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