org.aspectj.weaver.patterns
Class IfPointcut
java.lang.Object
org.aspectj.weaver.patterns.PatternNode
org.aspectj.weaver.patterns.Pointcut
org.aspectj.weaver.patterns.IfPointcut
- All Implemented Interfaces:
- IHasPosition, IHasSourceLocation
- Direct Known Subclasses:
- IfPointcut.IfFalsePointcut, IfPointcut.IfTruePointcut
public class IfPointcut
- extends Pointcut
Fields inherited from class org.aspectj.weaver.patterns.Pointcut |
AND, ANNOTATION, ARGS, ATARGS, ATTHIS_OR_TARGET, ATWITHIN, ATWITHINCODE, CFLOW, CONCRETE, EMPTY_STRING_ARRAY, HANDLER, hasBeenParameterized, IF, IF_FALSE, IF_TRUE, KINDED, lastMatchedShadowId, m_ignoreUnboundBindingForNames, NONE, NOT, OR, pointcutKind, REFERENCE, RESOLVED, state, SYMBOLIC, THIS_OR_TARGET, USER_EXTENSION, WITHIN, WITHINCODE |
Constructor Summary |
IfPointcut(ResolvedMember testMethod,
int extraParameterFlags)
|
IfPointcut(java.lang.String enclosingPointcutHint)
No-arg constructor for @AJ style, where the if() body is actually the @Pointcut annotated method |
Methods inherited from class org.aspectj.weaver.patterns.Pointcut |
assertState, check, concretize, concretize, concretize, findResidue, fromString, getPointcutKind, getTypeVariablesInScope, isDeclare, makeMatchesNothing, match, postRead, resolve, setTypeVariablesInScope |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
testMethod
public ResolvedMember testMethod
extraParameterFlags
public int extraParameterFlags
residueSource
public Pointcut residueSource
IfPointcut
public IfPointcut(ResolvedMember testMethod,
int extraParameterFlags)
IfPointcut
public IfPointcut(java.lang.String enclosingPointcutHint)
- No-arg constructor for @AJ style, where the if() body is actually the @Pointcut annotated method
couldMatchKinds
public int couldMatchKinds()
- Description copied from class:
Pointcut
- The set of ShadowKinds that this Pointcut could possibly match - an int whose bits are set according to the Kinds specified
in Shadow.java
- Specified by:
couldMatchKinds
in class Pointcut
fastMatch
public FuzzyBoolean fastMatch(FastMatchInfo type)
- Description copied from class:
Pointcut
- Could I match any shadows in the code defined within this type?
- Specified by:
fastMatch
in class Pointcut
matchInternal
protected FuzzyBoolean matchInternal(Shadow shadow)
- Specified by:
matchInternal
in class Pointcut
alwaysFalse
public boolean alwaysFalse()
alwaysTrue
public boolean alwaysTrue()
getResidueSource
public Pointcut getResidueSource()
write
public void write(CompressingDataOutputStream s)
throws java.io.IOException
- Specified by:
write
in class PatternNode
- Throws:
java.io.IOException
read
public static Pointcut read(VersionedDataInputStream s,
ISourceContext context)
throws java.io.IOException
- Throws:
java.io.IOException
resolveBindings
public void resolveBindings(IScope scope,
Bindings bindings)
- Specified by:
resolveBindings
in class Pointcut
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
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
findResidueInternal
protected Test findResidueInternal(Shadow shadow,
ExposedState state)
- At each shadow that matched, the residue can be different.
- Specified by:
findResidueInternal
in class Pointcut
shouldCopyLocationForConcretize
protected boolean shouldCopyLocationForConcretize()
- Overrides:
shouldCopyLocationForConcretize
in class Pointcut
concretize1
public Pointcut concretize1(ResolvedType inAspect,
ResolvedType declaringType,
IntMap bindings)
- Description copied from class:
Pointcut
- Resolves and removes ReferencePointcuts, replacing with basic ones
- Specified by:
concretize1
in class Pointcut
- Parameters:
inAspect
- the aspect to resolve relative tobindings
- a Map from formal index in the current lexical context -> formal index in the concrete advice that will run
This must always return a new Pointcut object (even if the concretized Pointcut is identical to the resolved one).
That behavior is assumed in many places. XXX fix implementors to handle state
parameterizeWith
public Pointcut parameterizeWith(java.util.Map typeVariableMap,
World w)
- Specified by:
parameterizeWith
in class Pointcut
makeIfFalsePointcut
public static IfPointcut makeIfFalsePointcut(Pointcut.State state)
accept
public java.lang.Object accept(PatternNodeVisitor visitor,
java.lang.Object data)
- Specified by:
accept
in class PatternNode
makeIfTruePointcut
public static IfPointcut makeIfTruePointcut(Pointcut.State state)
setAlways
public void setAlways(boolean matches)
- Called when it is determined that the pointcut refers to a constant value of TRUE or FALSE - enabling exact matching and no
unnecessary calls to the method representing the if body.