Class ParameterizedMethodBinding
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ParameterizedMethodBinding
- Direct Known Subclasses:
ParameterizedGenericMethodBinding
Binding denoting a method after type parameter substitutions got performed.
On parameterized type bindings, all methods got substituted, regardless whether
their signature did involve generics or not, so as to get the proper declaringClass for
these methods.
-
Field Summary
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding
declaringClass, defaultNullness, extendedTagBits, modifiers, PARAM_NONNULL, PARAM_NOTOWNING, PARAM_NULLABLE, PARAM_NULLITY, PARAM_OWNING, parameterFlowBits, parameterNames, parameters, receiver, returnType, selector, tagBits, thrownExceptions, typeAnnotations, typeVariables
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
ANY_EXCEPTION, ARRAY_TYPE, BASE_TYPE, DefaultLocationArrayContents, DefaultLocationField, DefaultLocationParameter, DefaultLocationReturnType, DefaultLocationsForTrueValue, DefaultLocationTypeArgument, DefaultLocationTypeBound, DefaultLocationTypeParameter, FIELD, GENERIC_TYPE, IMPORT, INTERSECTION_TYPE, INTERSECTION_TYPE18, LOCAL, METHOD, MODULE, NO_ANNOTATIONS, NO_COMPONENTS, NO_ELEMENT_VALUE_PAIRS, NO_EXCEPTIONS, NO_FIELDS, NO_MEMBER_TYPES, NO_METHODS, NO_MODULES, NO_NULL_DEFAULT, NO_PACKAGES, NO_PARAMETER_NAMES, NO_PARAMETERS, NO_PERMITTEDTYPES, NO_PLAIN_PACKAGES, NO_REFERENCE_TYPES, NO_SUPERINTERFACES, NO_TYPE_VARIABLES, NO_TYPES, NULL_UNSPECIFIED_BY_DEFAULT, NullnessDefaultMASK, PACKAGE, PARAMETERIZED_TYPE, PATTERN, POLY_TYPE, RAW_TYPE, RECORD_COMPONENT, TYPE, TYPE_PARAMETER, TYPE_USE, UNINITIALIZED_COMPONENTS, UNINITIALIZED_FIELDS, UNINITIALIZED_METHODS, UNINITIALIZED_REFERENCE_TYPES, VARIABLE, WILDCARD_TYPE
-
Constructor Summary
ConstructorDescriptionParameterizedMethodBinding
(ParameterizedTypeBinding parameterizedDeclaringClass, MethodBinding originalMethod) Create method of parameterized type, substituting original parameters/exception/return type with type arguments.ParameterizedMethodBinding
(ReferenceBinding declaringClass, MethodBinding originalMethod, char[][] alternateParamaterNames, LookupEnvironment environment) Create method of parameterized type, substituting original parameters/exception/return type with type arguments. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Subtypes can override this to return true if an access method should be used when referring to this method binding.boolean
canBeSeenBy
(TypeBinding receiverType, InvocationSite invocationSite, Scope scope) getAccessMethod
(boolean staticReference) This will only be called if alwaysNeedsAccessMethod() returns true.boolean
Returns true if some parameters got substituted.boolean
Returns true if the return type got substituted.static ParameterizedMethodBinding
instantiateGetClass
(TypeBinding receiverType, MethodBinding originalMethod, Scope scope) The type of x.getClass() is substituted from'Class<? extends Object>'
into:'Class<? extends raw(X)>
original()
Returns the original method (as opposed to parameterized instances)Strips one level of parameterization, so if both class and method are parameterized, leave the class parameters in place.Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.MethodBinding
areParameterErasuresEqual, areParametersCompatibleWith, areParametersEqual, areTypeVariableErasuresEqual, asRawMethod, canBeSeenBy, canBeSeenBy, collectMissingTypes, computeSignature, computeSubstitutedMethod, computeUniqueKey, constantPoolName, doesParameterLengthMatch, fillInDefaultNonNullness, fillInDefaultNonNullness18, findOriginalInheritedMethod, findPrivilegedBinding, flowBitFromAnnotationTagBit, genericMethod, genericSignature, getAccessFlags, getAllTypeVariables, getAnnotations, getAnnotationTagBits, getDefaultValue, getParameterAnnotations, getParameterNullness, getTypeAnnotations, getTypeVariable, getVisibleBinding, getVisibleBinding, hasNonNullDefaultForParameter, hasNonNullDefaultForReturnType, hasPolymorphicSignature, isAbstract, isBridge, isCanonicalConstructor, isClosingMethod, isCompactConstructor, isConstructor, isDefault, isDefaultAbstract, isDefaultMethod, isDeprecated, isFinal, isImplementing, isImplicit, isMain, isNative, isOrEnclosedByPrivateType, isOverriding, isParameterizedGeneric, isPolymorphic, isPrivate, isProtected, isPublic, isStatic, isStrictfp, isSynchronized, isSynthetic, isUsed, isVarargs, isViewedAsDeprecated, isVoidMethod, isWellknownMethod, isWellknownMethod, kind, notownsParameter, ownsParameter, readableName, redeclaresPublicObjectMethod, setAnnotations, setAnnotations, setDefaultValue, setParameterAnnotations, setSelector, setTypeAnnotations, shortReadableName, signature, signature, sourceEnd, sourceLambda, sourceRecordComponent, sourceStart, tiebreakMethod, toString, typeVariables, updateTypeVariableBinding, verifyOverrideCompatibility
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, initializeDeprecatedAnnotationTagBits, isAnnotationType, isParameter, isPatternVariable, isTaggedRepeatable, isValid, isValidBinding, isVolatile, problemId, setAnnotations
-
Field Details
-
originalMethod
-
-
Constructor Details
-
ParameterizedMethodBinding
public ParameterizedMethodBinding(ParameterizedTypeBinding parameterizedDeclaringClass, MethodBinding originalMethod) Create method of parameterized type, substituting original parameters/exception/return type with type arguments. -
ParameterizedMethodBinding
public ParameterizedMethodBinding(ReferenceBinding declaringClass, MethodBinding originalMethod, char[][] alternateParamaterNames, LookupEnvironment environment) Create method of parameterized type, substituting original parameters/exception/return type with type arguments. This is a CODE ASSIST method ONLY. -
ParameterizedMethodBinding
public ParameterizedMethodBinding()
-
-
Method Details
-
instantiateGetClass
public static ParameterizedMethodBinding instantiateGetClass(TypeBinding receiverType, MethodBinding originalMethod, Scope scope) The type of x.getClass() is substituted from'Class<? extends Object>'
into:'Class<? extends raw(X)>
-
hasSubstitutedParameters
public boolean hasSubstitutedParameters()Returns true if some parameters got substituted.- Overrides:
hasSubstitutedParameters
in classMethodBinding
-
hasSubstitutedReturnType
public boolean hasSubstitutedReturnType()Returns true if the return type got substituted.- Overrides:
hasSubstitutedReturnType
in classMethodBinding
-
original
Returns the original method (as opposed to parameterized instances)- Overrides:
original
in classMethodBinding
-
shallowOriginal
Description copied from class:MethodBinding
Strips one level of parameterization, so if both class and method are parameterized, leave the class parameters in place.- Overrides:
shallowOriginal
in classMethodBinding
-
alwaysNeedsAccessMethod
public boolean alwaysNeedsAccessMethod()Description copied from class:MethodBinding
Subtypes can override this to return true if an access method should be used when referring to this method binding. Currently used for AspectJ's inter-type method declarations.- Overrides:
alwaysNeedsAccessMethod
in classMethodBinding
-
canBeSeenBy
- Overrides:
canBeSeenBy
in classMethodBinding
-
getAccessMethod
Description copied from class:MethodBinding
This will only be called if alwaysNeedsAccessMethod() returns true. In that case it should return the access method to be used.- Overrides:
getAccessMethod
in classMethodBinding
-
sourceMethod
- Overrides:
sourceMethod
in classMethodBinding
-