org.aspectj.weaver.bcel
Class BcelTypeMunger

java.lang.Object
  extended by org.aspectj.weaver.ConcreteTypeMunger
      extended by org.aspectj.weaver.bcel.BcelTypeMunger
All Implemented Interfaces:
PartialOrder.PartialComparable
Direct Known Subclasses:
BcelAccessForInlineMunger, BcelCflowCounterFieldAdder, BcelCflowStackFieldAdder, BcelPerClauseAspectAdder

public class BcelTypeMunger
extends ConcreteTypeMunger


Constructor Summary
BcelTypeMunger(ResolvedTypeMunger munger, ResolvedType aspectType)
           
 
Method Summary
 boolean attemptToModifySuperCalls(org.aspectj.weaver.bcel.BcelClassWeaver weaver, LazyClassGen newParentTarget, ResolvedType newParent)
          The main part of implementing declare parents extends.
 boolean equals(java.lang.Object other)
           
 void error(org.aspectj.weaver.bcel.BcelClassWeaver weaver, java.lang.String text, ISourceLocation primaryLoc, ISourceLocation[] extraLocs)
           
 java.util.List<java.lang.String> getTypeVariableAliases()
          Returns a list of type variable aliases used in this munger.
 int hashCode()
           
 boolean munge(org.aspectj.weaver.bcel.BcelClassWeaver weaver)
           
 ConcreteTypeMunger parameterizedFor(ResolvedType target)
          For an ITD made on a generic type that shares type variables with that target type, this method will tailor the ITD for a particular usage of the generic type - either in its raw or parameterized form.
 ConcreteTypeMunger parameterizeWith(java.util.Map<java.lang.String,UnresolvedType> m, World w)
           
 boolean shouldOverwrite()
           
 java.lang.String toString()
           
 
Methods inherited from class org.aspectj.weaver.ConcreteTypeMunger
compareTo, equivalentTo, existsToSupportShadowMunging, fallbackCompareTo, getAspectType, getMatchingSyntheticMember, getMunger, getSignature, getSourceLocation, getWorld, isLateMunger, isTargetTypeParameterized, matches
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BcelTypeMunger

public BcelTypeMunger(ResolvedTypeMunger munger,
                      ResolvedType aspectType)
Method Detail

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

shouldOverwrite

public boolean shouldOverwrite()
Overrides:
shouldOverwrite in class ConcreteTypeMunger

munge

public boolean munge(org.aspectj.weaver.bcel.BcelClassWeaver weaver)

error

public void error(org.aspectj.weaver.bcel.BcelClassWeaver weaver,
                  java.lang.String text,
                  ISourceLocation primaryLoc,
                  ISourceLocation[] extraLocs)

attemptToModifySuperCalls

public boolean attemptToModifySuperCalls(org.aspectj.weaver.bcel.BcelClassWeaver weaver,
                                         LazyClassGen newParentTarget,
                                         ResolvedType newParent)
The main part of implementing declare parents extends. Modify super ctor calls to target the new type.


parameterizedFor

public ConcreteTypeMunger parameterizedFor(ResolvedType target)
Description copied from class: ConcreteTypeMunger
For an ITD made on a generic type that shares type variables with that target type, this method will tailor the ITD for a particular usage of the generic type - either in its raw or parameterized form.

Specified by:
parameterizedFor in class ConcreteTypeMunger

parameterizeWith

public ConcreteTypeMunger parameterizeWith(java.util.Map<java.lang.String,UnresolvedType> m,
                                           World w)
Specified by:
parameterizeWith in class ConcreteTypeMunger

getTypeVariableAliases

public java.util.List<java.lang.String> getTypeVariableAliases()
Returns a list of type variable aliases used in this munger. For example, if the ITD is 'int I.m(List las,List lbs) {}' then this returns a list containing the strings "A" and "B".


equals

public boolean equals(java.lang.Object other)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object