public abstract class ShadowMunger extends java.lang.Object implements PartialOrder.PartialComparable, IHasPosition
Modifier and Type | Field and Description |
---|---|
protected int |
end |
java.lang.String |
handle |
static ShadowMunger[] |
NONE |
protected Pointcut |
pointcut |
protected static int |
ShadowMungerAdvice |
protected static int |
ShadowMungerDeow |
protected ISourceContext |
sourceContext |
protected int |
start |
Modifier | Constructor and Description |
---|---|
protected |
ShadowMunger() |
|
ShadowMunger(Pointcut pointcut,
int start,
int end,
ISourceContext sourceContext,
int shadowMungerKind) |
Modifier and Type | Method and Description |
---|---|
abstract ShadowMunger |
concretize(ResolvedType fromType,
World world,
PerClause clause) |
int |
fallbackCompareTo(java.lang.Object other)
This method can provide a deterministic ordering for elements that are strictly not comparable.
|
ISourceLocation |
getBinarySourceLocation(ISourceLocation sl)
Returns the binarySourceLocation for the given sourcelocation.
|
abstract ResolvedType |
getConcreteAspect() |
ResolvedType |
getDeclaringType() |
int |
getEnd()
The ending index of this location in the character stream
This points to the last character in this token.
|
Pointcut |
getPointcut() |
ISourceLocation |
getSourceLocation() |
int |
getStart()
The starting index of this location in the character stream.
|
abstract java.util.Collection<ResolvedType> |
getThrownExceptions() |
abstract boolean |
implementOn(Shadow shadow)
Implement this munger at the specified shadow, returning a boolean to indicate success.
|
boolean |
isBinary()
Returns whether or not this shadow munger came from a binary aspect - keep a record of whether or not we've checked if we're
binary otherwise we keep calculating the same thing many times
|
boolean |
match(Shadow shadow,
World world)
All overriding methods should call super
|
abstract boolean |
mustCheckExceptions()
Does the munger have to check that its exception are accepted by the shadow ? It is not the case for annotation style around
advice, for example: that can throw Throwable, even if the advised method does not throw any exceptions.
|
abstract ShadowMunger |
parameterizeWith(ResolvedType declaringType,
java.util.Map<java.lang.String,UnresolvedType> typeVariableMap) |
void |
setDeclaringType(ResolvedType aType)
Invoked when the shadow munger of a resolved type are processed.
|
void |
setPointcut(Pointcut pointcut) |
abstract void |
specializeOn(Shadow shadow) |
void |
write(CompressingDataOutputStream stream) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
compareTo
public static final ShadowMunger[] NONE
protected static final int ShadowMungerAdvice
protected static final int ShadowMungerDeow
public java.lang.String handle
protected int start
protected int end
protected ISourceContext sourceContext
protected Pointcut pointcut
protected ShadowMunger()
public ShadowMunger(Pointcut pointcut, int start, int end, ISourceContext sourceContext, int shadowMungerKind)
public int fallbackCompareTo(java.lang.Object other)
PartialOrder.PartialComparable
fallbackCompareTo
in interface PartialOrder.PartialComparable
public int getEnd()
IHasPosition
getEnd
in interface IHasPosition
public int getStart()
IHasPosition
getStart
in interface IHasPosition
public ISourceLocation getSourceLocation()
public Pointcut getPointcut()
public void setPointcut(Pointcut pointcut)
public void setDeclaringType(ResolvedType aType)
aType
- public ResolvedType getDeclaringType()
public abstract ResolvedType getConcreteAspect()
public ISourceLocation getBinarySourceLocation(ISourceLocation sl)
public boolean isBinary()
public abstract ShadowMunger concretize(ResolvedType fromType, World world, PerClause clause)
public abstract void specializeOn(Shadow shadow)
public abstract boolean implementOn(Shadow shadow)
shadow
- the shadow where this munger should be appliedpublic abstract ShadowMunger parameterizeWith(ResolvedType declaringType, java.util.Map<java.lang.String,UnresolvedType> typeVariableMap)
public abstract java.util.Collection<ResolvedType> getThrownExceptions()
public abstract boolean mustCheckExceptions()
public void write(CompressingDataOutputStream stream) throws java.io.IOException
java.io.IOException