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
FieldsFields 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, typeVariablesFields 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
ConstructorsConstructorDescriptionParameterizedMethodBinding(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 TypeMethodDescriptionbooleanSubtypes can override this to return true if an access method should be used when referring to this method binding.booleancanBeSeenBy(TypeBinding receiverType, InvocationSite invocationSite, Scope scope) getAccessMethod(boolean staticReference) This will only be called if alwaysNeedsAccessMethod() returns true.booleanReturns true if some parameters got substituted.booleanReturns true if the return type got substituted.static ParameterizedMethodBindinginstantiateGetClass(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, isCandindateMain, 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, verifyOverrideCompatibilityMethods 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:
hasSubstitutedParametersin classMethodBinding
-
hasSubstitutedReturnType
public boolean hasSubstitutedReturnType()Returns true if the return type got substituted.- Overrides:
hasSubstitutedReturnTypein classMethodBinding
-
original
Returns the original method (as opposed to parameterized instances)- Overrides:
originalin classMethodBinding
-
shallowOriginal
Description copied from class:MethodBindingStrips one level of parameterization, so if both class and method are parameterized, leave the class parameters in place.- Overrides:
shallowOriginalin classMethodBinding
-
alwaysNeedsAccessMethod
public boolean alwaysNeedsAccessMethod()Description copied from class:MethodBindingSubtypes 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:
alwaysNeedsAccessMethodin classMethodBinding
-
canBeSeenBy
- Overrides:
canBeSeenByin classMethodBinding
-
getAccessMethod
Description copied from class:MethodBindingThis will only be called if alwaysNeedsAccessMethod() returns true. In that case it should return the access method to be used.- Overrides:
getAccessMethodin classMethodBinding
-
sourceMethod
- Overrides:
sourceMethodin classMethodBinding
-