Then we call resolveBindings() during compilation During concretization of enclosing pointcuts, we call remapAdviceFormals
| Modifier and Type | Class and Description |
|---|---|
| public static class |
| Modifier and Type | Field and Description |
|---|---|
| public static final byte | |
| protected AnnotationTypePattern | |
| public static final TypePattern | |
| public static final byte | |
| public static final byte | |
| public static final byte | |
| public static final TypePattern. | |
| public static final TypePattern | |
| public static final byte | |
| public static final byte | |
| public static final byte | |
| protected boolean | |
| protected boolean | |
| public static final TypePattern | |
| public static final byte | |
| public static final byte | |
| public static final byte | |
| public static final TypePattern. | |
| public static final byte | |
| protected TypePatternList | |
| public static final byte |
| Access | Constructor and Description |
|---|---|
| protected | |
| protected | |
| protected |
| Modifier and Type | Method and Description |
|---|---|
| protected boolean | |
| public AnnotationTypePattern | |
| public int | |
| public UnresolvedType | |
| public TypePatternList | |
| public boolean | |
| public boolean | |
| public boolean | |
| public boolean | |
| public boolean | |
| public boolean | |
| public boolean | |
| public boolean | |
| public boolean | |
| public final FuzzyBoolean | |
| protected abstract boolean | |
| protected abstract boolean | |
| protected abstract boolean | |
| public abstract FuzzyBoolean | |
| public boolean | |
| protected boolean | |
| protected boolean | |
| protected TypePattern | |
| public abstract TypePattern | parameterizeWith(Map<String, UnresolvedType> typeVariableMap, World w)
return a version of this type pattern in which all type variable references have been replaced by their corresponding entry in the map. |
| public void | |
| public static TypePattern | |
| public TypePattern | remapAdviceFormals(IntMap bindings)
This is called during concretization of pointcuts, it is used by BindingTypePattern to return a new BindingTypePattern with a formal index appropriate for the advice, rather than for the lexical declaration, i.e. this handles transformations through named pointcuts. |
| public void | |
| public TypePattern | resolveBindings(IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType)
This can modify in place, or return a new TypePattern if the type changes. |
| public UnresolvedType | |
| public void | |
| public void | |
| public void |
| AND | back to summary |
|---|---|
| public static final byte AND | |
| annotationPattern | back to summary |
|---|---|
| protected AnnotationTypePattern annotationPattern | |
| ANY | back to summary |
|---|---|
| public static final TypePattern ANY | |
| ANY_KEY | back to summary |
|---|---|
| public static final byte ANY_KEY | |
| ANY_WITH_ANNO | back to summary |
|---|---|
| public static final byte ANY_WITH_ANNO | |
| BINDING | back to summary |
|---|---|
| public static final byte BINDING | |
| DYNAMIC | back to summary |
|---|---|
| public static final TypePattern. | |
| ELLIPSIS | back to summary |
|---|---|
| public static final TypePattern ELLIPSIS | |
| ELLIPSIS_KEY | back to summary |
|---|---|
| public static final byte ELLIPSIS_KEY | |
| EXACT | back to summary |
|---|---|
| public static final byte EXACT | |
| HAS_MEMBER | back to summary |
|---|---|
| public static final byte HAS_MEMBER | |
| includeSubtypes | back to summary |
|---|---|
| protected boolean includeSubtypes | |
| isVarArgs | back to summary |
|---|---|
| protected boolean isVarArgs | |
| NO | back to summary |
|---|---|
| public static final TypePattern NO | |
| NO_KEY | back to summary |
|---|---|
| public static final byte NO_KEY | |
| NOT | back to summary |
|---|---|
| public static final byte NOT | |
| OR | back to summary |
|---|---|
| public static final byte OR | |
| STATIC | back to summary |
|---|---|
| public static final TypePattern. | |
| TYPE_CATEGORY | back to summary |
|---|---|
| public static final byte TYPE_CATEGORY | |
| typeParameters | back to summary |
|---|---|
| protected TypePatternList typeParameters | |
| WILD | back to summary |
|---|---|
| public static final byte WILD | |
| TypePattern | back to summary |
|---|---|
| protected TypePattern(boolean includeSubtypes, boolean isVarArgs, TypePatternList typeParams) | |
| TypePattern | back to summary |
|---|---|
| protected TypePattern(boolean includeSubtypes, boolean isVarArgs) | |
| TypePattern | back to summary |
|---|---|
| protected TypePattern(boolean includeSubtypes) | |
| couldEverMatchSameTypesAs | back to summary |
|---|---|
| protected boolean couldEverMatchSameTypesAs(TypePattern other) | |
| getAnnotationPattern | back to summary |
|---|---|
| public AnnotationTypePattern getAnnotationPattern() | |
| getDimensions | back to summary |
|---|---|
| public int getDimensions() | |
| getExactType | back to summary |
|---|---|
| public UnresolvedType getExactType() | |
| getTypeParameters | back to summary |
|---|---|
| public TypePatternList getTypeParameters() | |
| hasFailedResolution | back to summary |
|---|---|
| public boolean hasFailedResolution() | |
| isArray | back to summary |
|---|---|
| public boolean isArray() | |
| isBangVoid | back to summary |
|---|---|
| public boolean isBangVoid() For quickly recognizing the pattern '!void' | |
| isEllipsis | back to summary |
|---|---|
| public boolean isEllipsis() | |
| isIncludeSubtypes | back to summary |
|---|---|
| public boolean isIncludeSubtypes() | |
| isStar | back to summary |
|---|---|
| public boolean isStar() | |
| isStarAnnotation | back to summary |
|---|---|
| public boolean isStarAnnotation() | |
| isVarArgs | back to summary |
|---|---|
| public boolean isVarArgs() | |
| isVoid | back to summary |
|---|---|
| public boolean isVoid() for quickly recognizing the pattern 'void' | |
| matches | back to summary |
|---|---|
| public final FuzzyBoolean matches(ResolvedType type, TypePattern. | |
| matchesArray | back to summary |
|---|---|
| protected abstract boolean matchesArray(UnresolvedType type) | |
| matchesExactly | back to summary |
|---|---|
| protected abstract boolean matchesExactly(ResolvedType type) | |
| matchesExactly | back to summary |
|---|---|
| protected abstract boolean matchesExactly(ResolvedType type, ResolvedType annotatedType) | |
| matchesInstanceof | back to summary |
|---|---|
| public abstract FuzzyBoolean matchesInstanceof(ResolvedType type) | |
| matchesStatically | back to summary |
|---|---|
| public boolean matchesStatically(ResolvedType type) | |
| matchesSubtypes | back to summary |
|---|---|
| protected boolean matchesSubtypes(ResolvedType type) | |
| matchesSubtypes | back to summary |
|---|---|
| protected boolean matchesSubtypes(ResolvedType superType, ResolvedType annotatedType) | |
| notExactType | back to summary |
|---|---|
| protected TypePattern notExactType(IScope s) | |
| parameterizeWith | back to summary |
|---|---|
| public abstract TypePattern parameterizeWith(Map<String, UnresolvedType> typeVariableMap, World w) return a version of this type pattern in which all type variable references have been replaced by their corresponding entry in the map. | |
| postRead | back to summary |
|---|---|
| public void postRead(ResolvedType enclosingType) | |
| read | back to summary |
|---|---|
| public static TypePattern read(VersionedDataInputStream s, ISourceContext context) throws IOException | |
| remapAdviceFormals | back to summary |
|---|---|
| public TypePattern remapAdviceFormals(IntMap bindings) This is called during concretization of pointcuts, it is used by BindingTypePattern to return a new BindingTypePattern with a formal index appropriate for the advice, rather than for the lexical declaration, i.e. this handles transformations through named pointcuts.
pointcut foo(String name): args(name);
--> This makes a BindingTypePattern(0) pointing to the 0th formal
before(Foo f, String n): this(f) && foo(n) { ... }
--> when resolveReferences is called on the args from the above, it
will return a BindingTypePattern(1)
before(Foo f): this(f) && foo(*) { ... }
--> when resolveReferences is called on the args from the above, it
will return an ExactTypePattern(String)
| |
| resolve | back to summary |
|---|---|
| public void resolve(World world) | |
| resolveBindings | back to summary |
|---|---|
| public TypePattern resolveBindings(IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType) This can modify in place, or return a new TypePattern if the type changes. | |
| resolveExactType | back to summary |
|---|---|
| public UnresolvedType resolveExactType(IScope scope, Bindings bindings) | |
| setAnnotationTypePattern | back to summary |
|---|---|
| public void setAnnotationTypePattern(AnnotationTypePattern annPatt) | |
| setIsVarArgs | back to summary |
|---|---|
| public void setIsVarArgs(boolean isVarArgs) | |
| setTypeParameters | back to summary |
|---|---|
| public void setTypeParameters(TypePatternList typeParams) | |
| Modifier and Type | Method and Description |
|---|---|
| public String |
| name | back to summary |
|---|---|
| private String name | |
| MatchKind | back to summary |
|---|---|
| public MatchKind(String name) | |
| toString | back to summary |
|---|---|
| public String toString() Overrides java. Doc from java. Returns a string representation of the object. | |