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
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ReferenceBindingprotected Map<Binding, AnnotationHolder> static final char[]Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding
components, externalAnnotationProvider, fields, isImplicit, isVarArgs, memberFinder, memberTypes, methods, module, nestHost, originalSuperclass, originalSuperInterfaces, permittedTypes, privilegedHandler, scope, superclass, superInterfaces, supertypeAnnotationsUpdated, typeFinder, typeVariablesFields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
compoundName, fPackage, LUB_GENERIC, modifiers, samProblemBinding, singleAbstractMethod, sourceNameFields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
BOOLEAN, BYTE, CHAR, DOUBLE, extendedTagBits, FLOAT, id, INT, LONG, NULL, NUMERIC_TYPES, SHORT, tagBits, TYPE_USE_BINDING, typeAnnotations, VOIDFields 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_PERMITTED_TYPES, 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
ConstructorsModifierConstructorDescriptionprotectedDefault 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)booleancanBeSeenBy(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 intevaluateTypeQualifierDefault(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) booleanbooleanhasTypeBit(int bit) Answer an additional bit characterizing this type, likeTypeIds.BitAutoCloseable.voidCompute the tag bits for @Deprecated annotations, avoiding resolving entire annotation if not necessary.booleanisEquivalentTo(TypeBinding otherType) Returns true if a type is identical to another one, or for generic types, true if compared to its raw type.protected booleanbooleanbooleanReturns true if the type hierarchy is connectedbooleanisNestmateOf(SourceTypeBinding other) booleanbooleanisRecord()booleanAnswer true if the receiver is an annotation which may be repeatable.intkind()Returns the member types of this type sorted by simple name.methods()module()Return the primordial type from which the receiver was cloned.protected ITypeAnnotationWalkerprovideSyntheticEEA(IBinaryMethod method, ITypeAnnotationWalker walker) static TypeBindingresolveType(TypeBinding type, LookupEnvironment environment, boolean convertGenericToRawType) resolveTypeFor(FieldBinding field) resolveTypeFor(RecordComponentBinding component) resolveTypesFor(MethodBinding method) protected longscanForOwningAnnotation(IBinaryAnnotation[] annotations) voidvoidintintvoidtoString()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, addSyntheticFieldForEnumValues, addSyntheticFieldForInnerclass, addSyntheticFieldForInnerclass, addSyntheticFieldForSwitchEnum, addSyntheticMethod, addSyntheticMethod, addSyntheticMethod, addSyntheticMethod, addSyntheticMethodForEnumInitialization, addSyntheticMethodForSwitchEnum, addSyntheticRecordCanonicalConstructor, addSyntheticRecordComponentAccessor, addSyntheticRecordOverrideMethod, checkAndAddSyntheticRecordComponentAccessors, checkAndAddSyntheticRecordMethods, checkAndAddSyntheticRecordOverrideMethods, cleanUp, computeRecordComponents, computeUniqueKey, evaluateNullAnnotations, generateSyntheticFinalFieldInitialization, genericSignature, getAnnotationTagBits, getDefaultAbstractMethods, getExactMethodBase, getField, getField, getImplicitComponentFields, getMethods, getMethods, getNestHost, getSyntheticBridgeMethod, getSyntheticField, getSyntheticField, hasMethodWithNumArgs, isImplicitType, isReadyForAnnotations, isTaggedRepeatable, rememberTypeHierarchy, removeMethod, removeSyntheticRecordCanonicalConstructor, retrieveAnnotationHolder, setComponents, setFields, setMemberTypes, setMethods, setNestHost, setPermittedTypes, setSuperClass, setSuperInterfaces, setTypeVariables, syntheticFields, syntheticMethods, tagIndirectlyAccessibleMembersMethods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
acceptsNonNullDefault, actualType, appendNullAnnotation, applyCloseableClassWhitelists, applyCloseableInterfaceWhitelists, applyCloseableWhitelists, binarySearch, binarySearch, canBeInstantiated, canBeSeenBy, canBeSeenBy, computeGenericTypeSignature, computeId, computeId, constantPoolName, debugName, depth, detectAnnotationCycle, detectWrapperResource, downwardsProjection, enclosingTypeAt, enumConstantCount, fieldCount, getAccessFlags, getAllEnumerableAvatars, getAnnotations, getEnclosingInstancesSlotSize, getFileName, getInterfaceAbstractContracts, getOuterLocalVariablesSlotSize, getPackage, getSingleAbstractMethod, hasEnclosingInstanceContext, hashCode, hasHierarchyCheckStarted, hasIncompatibleSuperType, hasNullBit, hasRestrictedAccess, implementsInterface, innerCanBeSeenBy, innerCanBeSeenBy, isAbstract, isAnnotationType, isBinaryBinding, isClass, isCompatibleWith, isConsistentIntersection, isDefault, isDeprecated, isDisjointFrom, 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, upwardsProjectionMethods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
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, isRecordWithComponents, isReifiable, isTypeArgumentContainedBy, isTypeVariable, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, mentionsAny, needsUncheckedConversion, notEquals, original, qualifiedPackageName, setTypeAnnotations, signableName, sIsMoreSpecific, syntheticOuterLocalVariables, syntheticTypeVariablesMentioned, unboxedType, uncapture, updateTagBits, upwardsProjection, wellKnownBaseType, wellKnownTypeMethods 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
-
path
-
storedAnnotations
-
binaryPreviewAnnotation
-
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:TypeBindingVirtual 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:
clonein 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:ReferenceBindingAnswer true if the receiver is visible to the type provided by the scope.- Overrides:
canBeSeenByin classSourceTypeBinding
-
availableFields
Description copied from class:ReferenceBindingReturn the array of resolvable fields (resilience)- Overrides:
availableFieldsin classReferenceBinding- See Also:
-
availableMethods
Description copied from class:ReferenceBindingReturn the array of resolvable methods (resilience)- Overrides:
availableMethodsin classReferenceBinding- See Also:
-
isNestmateOf
- Overrides:
isNestmateOfin classSourceTypeBinding
-
provideSyntheticEEA
protected ITypeAnnotationWalker provideSyntheticEEA(IBinaryMethod method, ITypeAnnotationWalker walker) -
enclosingType
- Overrides:
enclosingTypein classTypeBinding
-
components
- Overrides:
componentsin classSourceTypeBinding
-
fields
- Overrides:
fieldsin classSourceTypeBinding
-
genericTypeSignature
public char[] genericTypeSignature()Description copied from class:TypeBindingAnswer 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:
genericTypeSignaturein classSourceTypeBinding- See Also:
-
getExactConstructor
- Overrides:
getExactConstructorin classSourceTypeBinding
-
getExactMethod
public MethodBinding getExactMethod(char[] selector, TypeBinding[] argumentTypes, CompilationUnitScope refScope) - Overrides:
getExactMethodin classSourceTypeBinding
-
getFieldBase
- Overrides:
getFieldBasein classSourceTypeBinding
-
getRecordComponent
- Overrides:
getRecordComponentin classSourceTypeBinding
-
getComponent
- Overrides:
getComponentin classSourceTypeBinding
-
isFieldInitializationFinished
protected boolean isFieldInitializationFinished()- Overrides:
isFieldInitializationFinishedin 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:
getMemberTypein classSourceTypeBinding
-
getMethodsBase
- Overrides:
getMethodsBasein classSourceTypeBinding
-
getMethodsBase
-
hasMemberTypes
public boolean hasMemberTypes()- Overrides:
hasMemberTypesin classSourceTypeBinding
-
getTypeVariable
- Overrides:
getTypeVariablein classReferenceBinding
-
hasTypeBit
public boolean hasTypeBit(int bit) Description copied from class:TypeBindingAnswer an additional bit characterizing this type, likeTypeIds.BitAutoCloseable.- Overrides:
hasTypeBitin classSourceTypeBinding
-
isEquivalentTo
Returns true if a type is identical to another one, or for generic types, true if compared to its raw type.- Overrides:
isEquivalentToin classSourceTypeBinding
-
isGenericType
public boolean isGenericType()- Overrides:
isGenericTypein classSourceTypeBinding
-
isHierarchyConnected
public boolean isHierarchyConnected()Description copied from class:ReferenceBindingReturns true if the type hierarchy is connected- Overrides:
isHierarchyConnectedin classSourceTypeBinding
-
isRepeatableAnnotationType
public boolean isRepeatableAnnotationType()Description copied from class:TypeBindingAnswer true if the receiver is an annotation which may be repeatable. Overridden as appropriate.- Overrides:
isRepeatableAnnotationTypein classSourceTypeBinding
-
kind
public int kind()- Overrides:
kindin classSourceTypeBinding
-
memberTypes
Description copied from class:ReferenceBindingReturns the member types of this type sorted by simple name.- Overrides:
memberTypesin classSourceTypeBinding
-
methodsBase
- Overrides:
methodsBasein classSourceTypeBinding
-
setHierarchyCheckDone
public void setHierarchyCheckDone()- Overrides:
setHierarchyCheckDonein classReferenceBinding
-
prototype
Description copied from class:TypeBindingReturn the primordial type from which the receiver was cloned. Not all types track a prototype, onlySourceTypeBinding,BinaryTypeBindingandUnresolvedReferenceBindingdo so as of now. In fact some types e.gParameterizedTypeBindingshould not do so. Deflecting a query to a prototype would lead to wrong results in the case ofParameterizedTypeBinding- Overrides:
prototypein classSourceTypeBinding
-
isPrototype
public boolean isPrototype()- Overrides:
isPrototypein classSourceTypeBinding
-
isRecord
public boolean isRecord()- Overrides:
isRecordin classSourceTypeBinding
-
getRecordComponentAccessor
Description copied from class:ReferenceBindingGet the accessor method given the record component name- Overrides:
getRecordComponentAccessorin classSourceTypeBinding- Parameters:
name- name of the record component- Returns:
- the method binding of the accessor if found, else null
-
containerAnnotationType
- Overrides:
containerAnnotationTypein classSourceTypeBinding
-
resolveTypeFor
- Overrides:
resolveTypeForin classSourceTypeBinding
-
resolveTypeFor
- Overrides:
resolveTypeForin classSourceTypeBinding
-
resolveTypesFor
- Overrides:
resolveTypesForin classSourceTypeBinding
-
setContainerAnnotationType
- Overrides:
setContainerAnnotationTypein classSourceTypeBinding
-
tagAsHavingDefectiveContainerType
public void tagAsHavingDefectiveContainerType()- Overrides:
tagAsHavingDefectiveContainerTypein classSourceTypeBinding
-
initializeDeprecatedAnnotationTagBits
public void initializeDeprecatedAnnotationTagBits()Description copied from class:BindingCompute the tag bits for @Deprecated annotations, avoiding resolving entire annotation if not necessary.- Overrides:
initializeDeprecatedAnnotationTagBitsin classSourceTypeBinding- See Also:
-
scanForOwningAnnotation
-
evaluateTypeQualifierDefault
-
superclass
- Overrides:
superclassin classSourceTypeBinding
-
superInterfaces
- Overrides:
superInterfacesin classSourceTypeBinding
-
permittedTypes
- Overrides:
permittedTypesin classSourceTypeBinding
-
typeVariables
- Overrides:
typeVariablesin classSourceTypeBinding
-
toString
- Overrides:
toStringin classSourceTypeBinding
-
unannotated
Description copied from class:TypeBindingReturn this type minus its type annotations- Overrides:
unannotatedin classSourceTypeBinding
-
withoutToplevelNullAnnotation
Description copied from class:TypeBindingReturn this type minus its toplevel null annotations. Any annotations on type arguments or bounds are retained.- Overrides:
withoutToplevelNullAnnotationin classSourceTypeBinding
-
unResolvedFields
- Overrides:
unResolvedFieldsin classSourceTypeBinding
-
unResolvedComponents
- Overrides:
unResolvedComponentsin classSourceTypeBinding
-
module
- Overrides:
modulein classSourceTypeBinding
-
methods
- Overrides:
methodsin classSourceTypeBinding
-
sourceStart
public int sourceStart()- Overrides:
sourceStartin classSourceTypeBinding
-
sourceEnd
public int sourceEnd()- Overrides:
sourceEndin classSourceTypeBinding
-