Class BinaryTypeBinding
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding
org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding
- Direct Known Subclasses:
MissingTypeBinding
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected ReferenceBinding
protected ReferenceBinding[]
protected SimpleLookupTable
static final char[]
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding
components, externalAnnotationProvider, fields, isVarArgs, memberFinder, memberTypes, methods, module, nestHost, originalSuperclass, originalSuperInterfaces, permittedTypes, privilegedHandler, scope, superclass, superInterfaces, typeFinder, typeVariables
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
compoundName, fPackage, LUB_GENERIC, modifiers, samProblemBinding, singleAbstractMethod, sourceName
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
BOOLEAN, BYTE, CHAR, DOUBLE, extendedTagBits, FLOAT, id, INT, LONG, NULL, SHORT, tagBits, TYPE_USE_BINDING, typeAnnotations, VOID
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
ModifierConstructorDescriptionprotected
Default empty constructor for subclasses only.BinaryTypeBinding
(BinaryTypeBinding prototype) BinaryTypeBinding
(PackageBinding packageBinding, IBinaryType binaryType, LookupEnvironment environment) Standard constructor for creating binary type bindings from binary models (classfiles)BinaryTypeBinding
(PackageBinding packageBinding, IBinaryType binaryType, LookupEnvironment environment, boolean needFieldsAndMethods) Standard constructor for creating binary type bindings from binary models (classfiles) -
Method Summary
Modifier and TypeMethodDescriptionReturn the array of resolvable fields (resilience)Return the array of resolvable methods (resilience)boolean
canBeSeenBy
(Scope sco) Answer true if the receiver is visible to the type provided by the scope.clone
(TypeBinding outerType) Virtual copy constructor: a copy is made of the receiver's entire instance state and then suitably parameterized by the arguments to the clone operation as seen fit by each type.static AnnotationBinding[]
createAnnotations
(IBinaryAnnotation[] annotationInfos, LookupEnvironment env, char[][][] missingTypeNames) static int
evaluateTypeQualifierDefault
(ReferenceBinding annotationType) fields()
char[]
Answer the receiver classfile signature.getComponent
(char[] componentName, boolean needResolve) getExactConstructor
(TypeBinding[] argumentTypes) getExactMethod
(char[] selector, TypeBinding[] argumentTypes, CompilationUnitScope refScope) getFieldBase
(char[] fieldName, boolean needResolve) getMemberType
(char[] typeName) Rewrite of default memberTypes() to avoid resolving eagerly all member types when one is requestedgetMethodsBase
(char[] selector) getMethodsBase
(char[] selector, int suggestedParameterLength) getRecordComponent
(char[] name) getRecordComponentAccessor
(char[] name) Get the accessor method given the record component namegetTypeVariable
(char[] variableName) boolean
boolean
hasTypeBit
(int bit) Answer an additional bit characterizing this type, likeTypeIds.BitAutoCloseable
.void
Compute the tag bits for @Deprecated annotations, avoiding resolving entire annotation if not necessary.boolean
isEquivalentTo
(TypeBinding otherType) Returns true if a type is identical to another one, or for generic types, true if compared to its raw type.protected boolean
boolean
boolean
Returns true if the type hierarchy is connectedboolean
isNestmateOf
(SourceTypeBinding other) boolean
boolean
isRecord()
boolean
Answer true if the receiver is an annotation which may be repeatable.int
kind()
Returns the member types of this type sorted by simple name.methods()
module()
Return the primordial type from which the receiver was cloned.protected ITypeAnnotationWalker
provideSyntheticEEA
(IBinaryMethod method, ITypeAnnotationWalker walker) static TypeBinding
resolveType
(TypeBinding type, LookupEnvironment environment, boolean convertGenericToRawType) resolveTypeFor
(FieldBinding field) resolveTypeFor
(RecordComponentBinding component) resolveTypesFor
(MethodBinding method) protected long
scanForOwningAnnotation
(IBinaryAnnotation[] annotations) void
void
int
int
void
toString()
Return this type minus its type annotationsReturn this type minus its toplevel null annotations.Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding
addField, addMethod, addSyntheticArrayMethod, addSyntheticBridgeMethod, addSyntheticBridgeMethod, addSyntheticEnumMethod, addSyntheticFactoryMethod, addSyntheticField, addSyntheticFieldForAssert, addSyntheticFieldForClassLiteral, addSyntheticFieldForEnumValues, addSyntheticFieldForInnerclass, addSyntheticFieldForInnerclass, addSyntheticFieldForSwitchEnum, addSyntheticMethod, addSyntheticMethod, addSyntheticMethod, addSyntheticMethod, addSyntheticMethodForEnumInitialization, addSyntheticMethodForSwitchEnum, addSyntheticRecordCanonicalConstructor, addSyntheticRecordComponentAccessor, addSyntheticRecordOverrideMethod, checkAndAddSyntheticRecordComponentAccessors, checkAndAddSyntheticRecordMethods, checkAndAddSyntheticRecordOverrideMethods, cleanUp, collectAllTypeBindings, computeRecordComponents, computeUniqueKey, evaluateNullAnnotations, generateSyntheticFinalFieldInitialization, genericSignature, getAnnotationTagBits, getDefaultAbstractMethods, getExactMethodBase, getField, getField, getImplicitComponentFields, getMethods, getMethods, getNestHost, getSyntheticBridgeMethod, getSyntheticField, getSyntheticField, hasMethodWithNumArgs, isReadyForAnnotations, isTaggedRepeatable, rememberTypeHierarchy, removeMethod, removeSyntheticRecordCanonicalConstructor, retrieveAnnotationHolder, setComponents, setFields, setMemberTypes, setMethods, setNestHost, setPermittedTypes, setSuperClass, setSuperInterfaces, setTypeVariables, syntheticFields, syntheticMethods, tagIndirectlyAccessibleMembers
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
acceptsNonNullDefault, appendNullAnnotation, applyCloseableClassWhitelists, applyCloseableInterfaceWhitelists, binarySearch, binarySearch, canBeInstantiated, canBeSeenBy, canBeSeenBy, computeGenericTypeSignature, computeId, computeId, constantPoolName, debugName, depth, detectAnnotationCycle, detectWrapperResource, downwardsProjection, enclosingTypeAt, enumConstantCount, fieldCount, getAccessFlags, getAnnotations, getEnclosingInstancesSlotSize, getFileName, getInterfaceAbstractContracts, getOuterLocalVariablesSlotSize, getPackage, getSingleAbstractMethod, hasEnclosingInstanceContext, hashCode, hasHierarchyCheckStarted, hasIncompatibleSuperType, hasNullBit, hasRestrictedAccess, implementsInterface, innerCanBeSeenBy, innerCanBeSeenBy, isAbstract, isAnnotationType, isBinaryBinding, isClass, isCompatibleWith, isConsistentIntersection, isDefault, isDeprecated, isEnum, isFinal, isFunctionalInterface, isHierarchyBeingActivelyConnected, isHierarchyBeingConnected, isInterface, isNestmateOf, isNonSealed, isOrEnclosedByPrivateType, isPrivate, isProperType, isProtected, isPublic, isSealed, isStatic, isStrictfp, isSubtypeOf, isSubTypeOfRTL, isSuperclassOf, isThrowable, isUncheckedException, isUsed, isViewedAsDeprecated, nullAnnotatedReadableName, outermostEnclosingType, qualifiedSourceName, readableName, readableName, setAnnotations, shortReadableName, shortReadableName, signature, sortFields, sortMethods, sourceName, syntheticEnclosingInstanceTypes, upwardsProjection
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
actualType, annotatedDebugName, capture, closestMatch, collectMissingTypes, collectSubstitutes, dimensions, enclosingMethod, enterRecursiveFunction, equalsEquals, erasure, exitRecursiveFunction, findSuperTypeOriginatingFrom, findSuperTypeOriginatingFrom, genericCast, getErasureCompatibleType, getIntersectingTypes, getTypeAnnotations, hasNullTypeAnnotations, hasTypeAnnotations, hasValueBasedTypeAnnotation, isAnonymousType, isArrayType, isBaseType, isBoundParameterizedType, isBoxedPrimitiveType, isBoxingCompatibleWith, isCapture, isCompatibleWith, isFreeTypeVariable, isFunctionalType, isHierarchyInconsistent, isIntersectionType, isIntersectionType18, isLocalType, isMemberType, isNestedType, isNonDenotable, isNumericType, isParameterizedType, isParameterizedTypeWithActualArguments, isParameterizedWithOwnVariables, isPolyType, isPotentiallyCompatibleWith, isPrimitiveOrBoxedPrimitiveType, isPrimitiveType, isProvablyDistinct, isRawType, isReifiable, isTypeArgumentContainedBy, isTypeVariable, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, mentionsAny, needsUncheckedConversion, notEquals, original, qualifiedPackageName, setTypeAnnotations, signableName, sIsMoreSpecific, swapUnresolved, syntheticOuterLocalVariables, uncapture, updateTagBits, wellKnownBaseType, wellKnownType
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, isParameter, isPatternVariable, isValid, isValidBinding, isVolatile, problemId, setAnnotations
-
Field Details
-
TYPE_QUALIFIER_DEFAULT
public static final char[] TYPE_QUALIFIER_DEFAULT -
enclosingType
-
permittedSubtypes
-
path
-
storedAnnotations
-
externalAnnotationStatus
-
-
Constructor Details
-
BinaryTypeBinding
protected BinaryTypeBinding()Default empty constructor for subclasses only. -
BinaryTypeBinding
-
BinaryTypeBinding
public BinaryTypeBinding(PackageBinding packageBinding, IBinaryType binaryType, LookupEnvironment environment) Standard constructor for creating binary type bindings from binary models (classfiles) -
BinaryTypeBinding
public BinaryTypeBinding(PackageBinding packageBinding, IBinaryType binaryType, LookupEnvironment environment, boolean needFieldsAndMethods) Standard constructor for creating binary type bindings from binary models (classfiles)
-
-
Method Details
-
clone
Description copied from class:TypeBinding
Virtual copy constructor: a copy is made of the receiver's entire instance state and then suitably parameterized by the arguments to the clone operation as seen fit by each type. Parameters may not make sense for every type in the hierarchy, in which case they are silently ignored. A type may choose to retain a copy of the prototype for reference.- Overrides:
clone
in classSourceTypeBinding
-
createAnnotations
public static AnnotationBinding[] createAnnotations(IBinaryAnnotation[] annotationInfos, LookupEnvironment env, char[][][] missingTypeNames) -
resolveType
public static TypeBinding resolveType(TypeBinding type, LookupEnvironment environment, boolean convertGenericToRawType) -
canBeSeenBy
Description copied from class:ReferenceBinding
Answer true if the receiver is visible to the type provided by the scope.- Overrides:
canBeSeenBy
in classSourceTypeBinding
-
availableFields
Description copied from class:ReferenceBinding
Return the array of resolvable fields (resilience)- Overrides:
availableFields
in classReferenceBinding
- See Also:
-
availableMethods
Description copied from class:ReferenceBinding
Return the array of resolvable methods (resilience)- Overrides:
availableMethods
in classReferenceBinding
- See Also:
-
isNestmateOf
- Overrides:
isNestmateOf
in classSourceTypeBinding
-
provideSyntheticEEA
protected ITypeAnnotationWalker provideSyntheticEEA(IBinaryMethod method, ITypeAnnotationWalker walker) -
enclosingType
- Overrides:
enclosingType
in classTypeBinding
-
components
- Overrides:
components
in classSourceTypeBinding
-
fields
- Overrides:
fields
in classSourceTypeBinding
-
genericTypeSignature
public char[] genericTypeSignature()Description copied from class:TypeBinding
Answer the receiver classfile signature. Arrays and base types do not distinguish between signature() and constantPoolName(). NOTE: This method should only be used during/after code gen.- Overrides:
genericTypeSignature
in classSourceTypeBinding
- See Also:
-
getExactConstructor
- Overrides:
getExactConstructor
in classSourceTypeBinding
-
getExactMethod
public MethodBinding getExactMethod(char[] selector, TypeBinding[] argumentTypes, CompilationUnitScope refScope) - Overrides:
getExactMethod
in classSourceTypeBinding
-
getFieldBase
- Overrides:
getFieldBase
in classSourceTypeBinding
-
getRecordComponent
- Overrides:
getRecordComponent
in classSourceTypeBinding
-
getComponent
- Overrides:
getComponent
in classSourceTypeBinding
-
isFieldInitializationFinished
protected boolean isFieldInitializationFinished()- Overrides:
isFieldInitializationFinished
in classReferenceBinding
- Returns:
- true, when the fields (or in the case of record, the record components) are fully initialized.
-
getMemberType
Rewrite of default memberTypes() to avoid resolving eagerly all member types when one is requested- Overrides:
getMemberType
in classSourceTypeBinding
-
getMethodsBase
- Overrides:
getMethodsBase
in classSourceTypeBinding
-
getMethodsBase
-
hasMemberTypes
public boolean hasMemberTypes()- Overrides:
hasMemberTypes
in classSourceTypeBinding
-
getTypeVariable
- Overrides:
getTypeVariable
in classReferenceBinding
-
hasTypeBit
public boolean hasTypeBit(int bit) Description copied from class:TypeBinding
Answer an additional bit characterizing this type, likeTypeIds.BitAutoCloseable
.- Overrides:
hasTypeBit
in classSourceTypeBinding
-
isEquivalentTo
Returns true if a type is identical to another one, or for generic types, true if compared to its raw type.- Overrides:
isEquivalentTo
in classSourceTypeBinding
-
isGenericType
public boolean isGenericType()- Overrides:
isGenericType
in classSourceTypeBinding
-
isHierarchyConnected
public boolean isHierarchyConnected()Description copied from class:ReferenceBinding
Returns true if the type hierarchy is connected- Overrides:
isHierarchyConnected
in classSourceTypeBinding
-
isRepeatableAnnotationType
public boolean isRepeatableAnnotationType()Description copied from class:TypeBinding
Answer true if the receiver is an annotation which may be repeatable. Overridden as appropriate.- Overrides:
isRepeatableAnnotationType
in classSourceTypeBinding
-
kind
public int kind()- Overrides:
kind
in classSourceTypeBinding
-
memberTypes
Description copied from class:ReferenceBinding
Returns the member types of this type sorted by simple name.- Overrides:
memberTypes
in classSourceTypeBinding
-
methodsBase
- Overrides:
methodsBase
in classSourceTypeBinding
-
setHierarchyCheckDone
public void setHierarchyCheckDone()- Overrides:
setHierarchyCheckDone
in classReferenceBinding
-
prototype
Description copied from class:TypeBinding
Return the primordial type from which the receiver was cloned. Not all types track a prototype, onlySourceTypeBinding
,BinaryTypeBinding
andUnresolvedReferenceBinding
do so as of now. In fact some types e.gParameterizedTypeBinding
should not do so. Deflecting a query to a prototype would lead to wrong results in the case ofParameterizedTypeBinding
- Overrides:
prototype
in classSourceTypeBinding
-
isPrototype
public boolean isPrototype()- Overrides:
isPrototype
in classSourceTypeBinding
-
isRecord
public boolean isRecord()- Overrides:
isRecord
in classSourceTypeBinding
-
getRecordComponentAccessor
Description copied from class:ReferenceBinding
Get the accessor method given the record component name- Overrides:
getRecordComponentAccessor
in classSourceTypeBinding
- Parameters:
name
- name of the record component- Returns:
- the method binding of the accessor if found, else null
-
containerAnnotationType
- Overrides:
containerAnnotationType
in classSourceTypeBinding
-
resolveTypeFor
- Overrides:
resolveTypeFor
in classSourceTypeBinding
-
resolveTypeFor
- Overrides:
resolveTypeFor
in classSourceTypeBinding
-
resolveTypesFor
- Overrides:
resolveTypesFor
in classSourceTypeBinding
-
setContainerAnnotationType
- Overrides:
setContainerAnnotationType
in classSourceTypeBinding
-
tagAsHavingDefectiveContainerType
public void tagAsHavingDefectiveContainerType()- Overrides:
tagAsHavingDefectiveContainerType
in classSourceTypeBinding
-
initializeDeprecatedAnnotationTagBits
public void initializeDeprecatedAnnotationTagBits()Description copied from class:Binding
Compute the tag bits for @Deprecated annotations, avoiding resolving entire annotation if not necessary.- Overrides:
initializeDeprecatedAnnotationTagBits
in classSourceTypeBinding
- See Also:
-
scanForOwningAnnotation
-
evaluateTypeQualifierDefault
-
superclass
- Overrides:
superclass
in classSourceTypeBinding
-
superInterfaces
- Overrides:
superInterfaces
in classSourceTypeBinding
-
permittedTypes
- Overrides:
permittedTypes
in classSourceTypeBinding
-
typeVariables
- Overrides:
typeVariables
in classSourceTypeBinding
-
toString
- Overrides:
toString
in classSourceTypeBinding
-
unannotated
Description copied from class:TypeBinding
Return this type minus its type annotations- Overrides:
unannotated
in classSourceTypeBinding
-
withoutToplevelNullAnnotation
Description copied from class:TypeBinding
Return this type minus its toplevel null annotations. Any annotations on type arguments or bounds are retained.- Overrides:
withoutToplevelNullAnnotation
in classSourceTypeBinding
-
unResolvedFields
- Overrides:
unResolvedFields
in classSourceTypeBinding
-
unResolvedComponents
- Overrides:
unResolvedComponents
in classSourceTypeBinding
-
module
- Overrides:
module
in classSourceTypeBinding
-
methods
- Overrides:
methods
in classSourceTypeBinding
-
sourceStart
public int sourceStart()- Overrides:
sourceStart
in classSourceTypeBinding
-
sourceEnd
public int sourceEnd()- Overrides:
sourceEnd
in classSourceTypeBinding
-