| Modifier and Type | Class and Description |
|---|---|
| pack-priv static class | WildTypePattern.VerifyBoundsForTypePattern
By capturing the verification in this class, rather than performing it in verifyTypeParameters(), we can cope with situations where the interactions between generics and declare parents would otherwise cause us problems. |
| Modifier and Type | Field and Description |
|---|---|
| pack-priv TypePattern[] | |
| public static boolean | |
| pack-priv int | |
| pack-priv int | |
| private boolean | |
| private static final String | |
| private static final String | |
| pack-priv String[] | |
| private boolean | |
| pack-priv String[] | |
| pack-priv TypePattern | |
| private NamePattern[] | |
| pack-priv TypePattern | |
| private static final byte |
| Access | Constructor and Description |
|---|---|
| pack-priv | WildTypePattern(NamePattern[] namePatterns, boolean includeSubtypes, int dim, boolean isVarArgs, TypePatternList typeParams)
|
| public | |
| public | |
| public | WildTypePattern(List<NamePattern> names, boolean includeSubtypes, int dim, int endPos, boolean isVarArg)
|
| public | WildTypePattern(List<NamePattern> names, boolean includeSubtypes, int dim, int endPos, boolean isVarArg, TypePatternList typeParams, TypePattern upperBound, TypePattern[] additionalInterfaceBounds, TypePattern lowerBound)
|
| public | WildTypePattern(List<NamePattern> names, boolean includeSubtypes, int dim, int endPos, boolean isVarArg, TypePatternList typeParams)
|
| Modifier and Type | Method and Description |
|---|---|
| public Object | accept(PatternNodeVisitor visitor, Object data)
Implements abstract org. |
| protected boolean | |
| public boolean | equals(Object
the reference object with which to compare. other)Overrides java. |
| public NamePattern | |
| public TypePattern[] | |
| public int | getDimensions()
Overrides org. |
| public TypePattern | |
| public NamePattern[] | |
| public TypePattern | |
| public boolean | |
| public int | |
| private boolean | |
| private static boolean | inStar(final NamePattern[] pattern, final char[][] target, int pi, int ti, final int pLeft, int tLeft, int starsLeft)
|
| public boolean | |
| private boolean | |
| public boolean | |
| private int | |
| private UnresolvedType | |
| private ResolvedType | |
| private ResolvedType | lookupTypeInWorldIncludingPrefixes(World world, String typeName, String[] prefixes)
Searches the world for the ResolvedType with the given typeName. |
| protected boolean | matchesArray(UnresolvedType type)
Implements abstract org. |
| private boolean | |
| protected boolean | matchesExactly(ResolvedType type)
Implements abstract org. |
| protected boolean | matchesExactly(ResolvedType type, ResolvedType annotatedType)
Implements abstract org. |
| private boolean | |
| public FuzzyBoolean | matchesInstanceof(ResolvedType type)
Implements abstract org. |
| private boolean | |
| public boolean | |
| public String | |
| public String | maybeGetSimpleName()
If this type pattern has no '.' or '*' in it, then return a simple string otherwise, this will return null; |
| private TypePattern | maybeResolveToAnyPattern(IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType)
|
| private TypePattern | maybeResolveToBindingTypePattern(IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType)
|
| private static boolean | outOfStar(final NamePattern[] pattern, final char[][] target, int pi, int ti, int pLeft, int tLeft, final int starsLeft)
|
| public TypePattern | parameterizeWith(Map<String, UnresolvedType> typeVariableMap, World w)
Implements abstract org. |
| private String[] | |
| public static TypePattern | |
| public static TypePattern | |
| public static TypePattern | |
| public TypePattern | resolveBindings(IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType)
Overrides org. |
| private TypePattern | resolveBindingsForExactType(IScope scope, UnresolvedType aType, String fullyQualifiedName, boolean requireExactType)
|
| private TypePattern | resolveBindingsForMissingType(ResolvedType typeFoundInWholeWorldSearch, String nameWeLookedFor, IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType)
|
| private TypePattern | resolveBindingsForTypeVariable(IScope scope, UnresolvedTypeVariableReferenceType tvrType)
We resolved the type to a type variable declared in the pointcut designator. |
| private TypePattern | resolveBindingsFromFullyQualifiedTypeName(String fullyQualifiedName, IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType)
|
| private TypePattern | |
| private TypePattern | |
| public void | |
| public static char[][] | |
| public String | |
| private boolean | verifyTypeParameters(ResolvedType baseType, IScope scope, boolean requireExactType)
When this method is called, we have resolved the base type to an exact type. |
| public void | write(CompressingDataOutputStream s)
Implements abstract org. |
| additionalInterfaceBounds | back to summary |
|---|---|
| pack-priv TypePattern[] additionalInterfaceBounds | |
| boundscheckingoff | back to summary |
|---|---|
| public static boolean boundscheckingoff | |
| dim | back to summary |
|---|---|
| pack-priv int dim | |
| ellipsisCount | back to summary |
|---|---|
| pack-priv int ellipsisCount | |
| failedResolution | back to summary |
|---|---|
| private boolean failedResolution | |
| GENERIC_WILDCARD_CHARACTER | back to summary |
|---|---|
| private static final String GENERIC_WILDCARD_CHARACTER | |
| GENERIC_WILDCARD_SIGNATURE_CHARACTER | back to summary |
|---|---|
| private static final String GENERIC_WILDCARD_SIGNATURE_CHARACTER | |
| importedPrefixes | back to summary |
|---|---|
| pack-priv String[] importedPrefixes | |
| isGeneric | back to summary |
|---|---|
| private boolean isGeneric | |
| knownMatches | back to summary |
|---|---|
| pack-priv String[] knownMatches | |
| lowerBound | back to summary |
|---|---|
| pack-priv TypePattern lowerBound | |
| namePatterns | back to summary |
|---|---|
| private NamePattern[] namePatterns | |
| upperBound | back to summary |
|---|---|
| pack-priv TypePattern upperBound | |
| VERSION | back to summary |
|---|---|
| private static final byte VERSION | |
| WildTypePattern | back to summary |
|---|---|
| pack-priv WildTypePattern(NamePattern[] namePatterns, boolean includeSubtypes, int dim, boolean isVarArgs, TypePatternList typeParams) | |
| WildTypePattern | back to summary |
|---|---|
| public WildTypePattern(List<NamePattern> names, boolean includeSubtypes, int dim) | |
| WildTypePattern | back to summary |
|---|---|
| public WildTypePattern(List<NamePattern> names, boolean includeSubtypes, int dim, int endPos) | |
| WildTypePattern | back to summary |
|---|---|
| public WildTypePattern(List<NamePattern> names, boolean includeSubtypes, int dim, int endPos, boolean isVarArg) | |
| WildTypePattern | back to summary |
|---|---|
| public WildTypePattern(List<NamePattern> names, boolean includeSubtypes, int dim, int endPos, boolean isVarArg, TypePatternList typeParams, TypePattern upperBound, TypePattern[] additionalInterfaceBounds, TypePattern lowerBound) | |
| WildTypePattern | back to summary |
|---|---|
| public WildTypePattern(List<NamePattern> names, boolean includeSubtypes, int dim, int endPos, boolean isVarArg, TypePatternList typeParams) | |
| accept | back to summary |
|---|---|
| public Object accept(PatternNodeVisitor visitor, Object data) Implements abstract org.
| |
| couldEverMatchSameTypesAs | back to summary |
|---|---|
| protected boolean couldEverMatchSameTypesAs(TypePattern other) Overrides org.
| |
| equals | back to summary |
|---|---|
| public boolean equals(Object other) Overrides java. Doc from java. Indicates whether some other object is "equal to" this one.
The
An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes. | |
| extractName | back to summary |
|---|---|
| public NamePattern extractName() | |
| getAdditionalIntefaceBounds | back to summary |
|---|---|
| public TypePattern[] getAdditionalIntefaceBounds() | |
| getDimensions | back to summary |
|---|---|
| public int getDimensions() Overrides org. Used in conjunction with checks on 'isStar()' to tell you if this pattern represents '*' or '*[]' which are different ! | |
| getLowerBound | back to summary |
|---|---|
| public TypePattern getLowerBound() | |
| getNamePatterns | back to summary |
|---|---|
| public NamePattern[] getNamePatterns() | |
| getUpperBound | back to summary |
|---|---|
| public TypePattern getUpperBound() | |
| hasFailedResolution | back to summary |
|---|---|
| public boolean hasFailedResolution() Overrides org. | |
| hashCode | back to summary |
|---|---|
| public int hashCode() Overrides java. Doc from java. Returns a hash code value for the object. This method is
supported for the benefit of hash tables such as those provided by
The general contract of
| |
| innerMatchesExactly | back to summary |
|---|---|
| private boolean innerMatchesExactly(String s, boolean isAnonymous, boolean convertDollar) | |
| inStar | back to summary |
|---|---|
| private static boolean inStar(final NamePattern[] pattern, final char[][] target, int pi, int ti, final int pLeft, int tLeft, int starsLeft) | |
| isArray | back to summary |
|---|---|
| public boolean isArray() Overrides org.
| |
| isNamePatternStar | back to summary |
|---|---|
| private boolean isNamePatternStar() | |
| isStar | back to summary |
|---|---|
| public boolean isStar() Overrides org.
| |
| lastIndexOfDotOrDollar | back to summary |
|---|---|
| private int lastIndexOfDotOrDollar(String string) | |
| lookupTypeInScope | back to summary |
|---|---|
| private UnresolvedType lookupTypeInScope(IScope scope, String typeName, IHasPosition location) | |
| lookupTypeInWorld | back to summary |
|---|---|
| private ResolvedType lookupTypeInWorld(World world, String typeName) | |
| lookupTypeInWorldIncludingPrefixes | back to summary |
|---|---|
| private ResolvedType lookupTypeInWorldIncludingPrefixes(World world, String typeName, String[] prefixes) Searches the world for the ResolvedType with the given typeName. If one isn't found then for each of the supplied prefixes, it prepends the typeName with the prefix and searches the world for the ResolvedType with this new name. If one still isn't found then a MissingResolvedTypeWithKnownSignature is returned with the originally requested typeName (this ensures the typeName makes sense). | |
| matchesArray | back to summary |
|---|---|
| protected boolean matchesArray(UnresolvedType type) Implements abstract org.
| |
| matchesBounds | back to summary |
|---|---|
| private boolean matchesBounds(ResolvedType aType, TypePattern. | |
| matchesExactly | back to summary |
|---|---|
| protected boolean matchesExactly(ResolvedType type) Implements abstract org.
| |
| matchesExactly | back to summary |
|---|---|
| protected boolean matchesExactly(ResolvedType type, ResolvedType annotatedType) Implements abstract org.
| |
| matchesExactlyByName | back to summary |
|---|---|
| private boolean matchesExactlyByName(String targetTypeName, boolean isAnonymous, boolean isNested) | |
| matchesInstanceof | back to summary |
|---|---|
| public FuzzyBoolean matchesInstanceof(ResolvedType type) Implements abstract org.
| |
| matchesParameters | back to summary |
|---|---|
| private boolean matchesParameters(ResolvedType aType, TypePattern. | |
| maybeExtractName | back to summary |
|---|---|
| public boolean maybeExtractName(String string) Method maybeExtractName.
| |
| maybeGetCleanName | back to summary |
|---|---|
| public String maybeGetCleanName() If this type pattern has no '*' or '..' in it | |
| maybeGetSimpleName | back to summary |
|---|---|
| public String maybeGetSimpleName() If this type pattern has no '.' or '*' in it, then return a simple string otherwise, this will return null; | |
| maybeResolveToAnyPattern | back to summary |
|---|---|
| private TypePattern maybeResolveToAnyPattern(IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType) | |
| maybeResolveToBindingTypePattern | back to summary |
|---|---|
| private TypePattern maybeResolveToBindingTypePattern(IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType) | |
| outOfStar | back to summary |
|---|---|
| private static boolean outOfStar(final NamePattern[] pattern, final char[][] target, int pi, int ti, int pLeft, int tLeft, final int starsLeft) | |
| parameterizeWith | back to summary |
|---|---|
| public TypePattern parameterizeWith(Map<String, UnresolvedType> typeVariableMap, World w) Implements abstract org. Doc from org. return a version of this type pattern in which all type variable references have been replaced by their corresponding entry in the map.
| |
| preMatch | back to summary |
|---|---|
private String[] preMatch(String[] possibleMatches)
| |
| read | back to summary |
|---|---|
| public static TypePattern read(VersionedDataInputStream s, ISourceContext context) throws IOException | |
| readTypePattern150 | back to summary |
|---|---|
| public static TypePattern readTypePattern150(VersionedDataInputStream s, ISourceContext context) throws IOException | |
| readTypePatternOldStyle | back to summary |
|---|---|
| public static TypePattern readTypePatternOldStyle(VersionedDataInputStream s, ISourceContext context) throws IOException | |
| resolveBindings | back to summary |
|---|---|
| public TypePattern resolveBindings(IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType) Overrides org. Need to determine if I'm really a pattern or a reference to a formal We may wish to further optimize the case of pattern vs. non-pattern We will be replaced by what we return
| |
| resolveBindingsForExactType | back to summary |
|---|---|
| private TypePattern resolveBindingsForExactType(IScope scope, UnresolvedType aType, String fullyQualifiedName, boolean requireExactType) | |
| resolveBindingsForMissingType | back to summary |
|---|---|
| private TypePattern resolveBindingsForMissingType(ResolvedType typeFoundInWholeWorldSearch, String nameWeLookedFor, IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType) | |
| resolveBindingsForTypeVariable | back to summary |
|---|---|
| private TypePattern resolveBindingsForTypeVariable(IScope scope, UnresolvedTypeVariableReferenceType tvrType) We resolved the type to a type variable declared in the pointcut designator. Now we have to create either an exact type pattern or a wild type pattern for it, with upper and lower bounds set accordingly. XXX none of this stuff gets serialized yet | |
| resolveBindingsFromFullyQualifiedTypeName | back to summary |
|---|---|
| private TypePattern resolveBindingsFromFullyQualifiedTypeName(String fullyQualifiedName, IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType) | |
| resolveGenericWildcard | back to summary |
|---|---|
| private TypePattern resolveGenericWildcard(IScope scope, UnresolvedType aType) | |
| resolveParameterizedType | back to summary |
|---|---|
| private TypePattern resolveParameterizedType(IScope scope, UnresolvedType aType, boolean requireExactType) | |
| setIsVarArgs | back to summary |
|---|---|
| public void setIsVarArgs(boolean isVarArgs) Overrides org.
| |
| splitNames | back to summary |
|---|---|
| public static char[][] splitNames(String s, boolean convertDollar) | |
| toString | back to summary |
|---|---|
| public String toString() Overrides java. Doc from java. Returns a string representation of the object. | |
| verifyTypeParameters | back to summary |
|---|---|
| private boolean verifyTypeParameters(ResolvedType baseType, IScope scope, boolean requireExactType) When this method is called, we have resolved the base type to an exact type. We also have a set of type patterns for the parameters. Time to perform some basic checks: - can the base type be parameterized? (is it generic) - can the type parameter pattern list match the number of parameters on the base type - do all parameter patterns meet the bounds of the respective type variables If any of these checks fail, a warning message is issued and we return false. | |
| write | back to summary |
|---|---|
| public void write(CompressingDataOutputStream s) throws IOException Implements abstract org.
| |
| Modifier and Type | Field and Description |
|---|---|
| private final ResolvedType | |
| private final boolean | |
| private final IScope | |
| private final ISourceLocation | |
| private TypePatternList |
| Access | Constructor and Description |
|---|---|
| public | VerifyBoundsForTypePattern(IScope scope, ResolvedType genericType, boolean requireExactType, TypePatternList typeParameters, ISourceLocation sLoc)
|
| Modifier and Type | Method and Description |
|---|---|
| public void |
| genericType | back to summary |
|---|---|
| private final ResolvedType genericType | |
| requireExactType | back to summary |
|---|---|
| private final boolean requireExactType | |
| scope | back to summary |
|---|---|
| private final IScope scope | |
| sLoc | back to summary |
|---|---|
| private final ISourceLocation sLoc | |
| typeParameters | back to summary |
|---|---|
| private TypePatternList typeParameters | |
| VerifyBoundsForTypePattern | back to summary |
|---|---|
| public VerifyBoundsForTypePattern(IScope scope, ResolvedType genericType, boolean requireExactType, TypePatternList typeParameters, ISourceLocation sLoc) | |
| verify | back to summary |
|---|---|
| public void verify() Implements org. | |