org.aspectj.org.eclipse.jdt.internal.compiler.lookup
Class CaptureBinding

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
      extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
          extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
              extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
                  extended by org.aspectj.org.eclipse.jdt.internal.compiler.lookup.CaptureBinding
Direct Known Subclasses:
CaptureBinding18

public class CaptureBinding
extends TypeVariableBinding


Field Summary
 int captureID
           
 TypeBinding lowerBound
           
 int position
           
 ReferenceBinding sourceType
           
 WildcardBinding wildcard
           
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
declaringElement, firstBound, genericTypeSignature, rank, superclass, superInterfaces
 
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, 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, DefaultLocationTypeArgument, DefaultLocationTypeBound, DefaultLocationTypeParameter, FIELD, GENERIC_TYPE, IMPORT, INTERSECTION_CAST_TYPE, INTERSECTION_TYPE, LOCAL, METHOD, NO_ANNOTATIONS, NO_ELEMENT_VALUE_PAIRS, NO_EXCEPTIONS, NO_FIELDS, NO_MEMBER_TYPES, NO_METHODS, NO_NULL_DEFAULT, NO_PARAMETER_NAMES, NO_PARAMETERS, NO_REFERENCE_TYPES, NO_SUPERINTERFACES, NO_TYPE_VARIABLES, NO_TYPES, NONNULL_BY_DEFAULT, NULL_UNSPECIFIED_BY_DEFAULT, NullnessDefaultMASK, PACKAGE, PARAMETERIZED_TYPE, POLY_TYPE, RAW_TYPE, TYPE, TYPE_PARAMETER, TYPE_USE, UNINITIALIZED_FIELDS, UNINITIALIZED_METHODS, UNINITIALIZED_REFERENCE_TYPES, VARIABLE, WILDCARD_TYPE
 
Constructor Summary
  CaptureBinding(CaptureBinding prototype)
           
protected CaptureBinding(ReferenceBinding sourceType, char[] sourceName, int position, int captureID, LookupEnvironment environment)
           
  CaptureBinding(WildcardBinding wildcard, ReferenceBinding sourceType, int position, int captureID)
           
 
Method Summary
 TypeBinding clone(TypeBinding enclosingType)
          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.
 char[] computeUniqueKey(boolean isLeaf)
          p.X {} -> Lp/X;
 java.lang.String debugName()
           
 char[] genericTypeSignature()
          T::Ljava/util/Map;:Ljava/io/Serializable; T:LY
 void initializeBounds(Scope scope, ParameterizedTypeBinding capturedParameterizedType)
          Initialize capture bounds using substituted supertypes e.g.
 boolean isCapture()
          Returns true if the type is the capture of some wildcard
 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.
 char[] nullAnnotatedReadableName(CompilerOptions options, boolean shortNames)
          Answer a readable name (for error reporting) that includes nullness type annotations.
 char[] readableName()
          Answer the receiver's signature.
 char[] shortReadableName()
           
 java.lang.String toString()
           
 TypeBinding uncapture(Scope scope)
          Perform capture "deconversion" on a given type
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
acceptsNonNullDefault, annotatedDebugName, boundCheck, boundsCount, canBeInstantiated, collectSubstitutes, combineTypeAnnotations, constantPoolName, enterRecursiveFunction, erasure, evaluateNullAnnotations, exitRecursiveFunction, genericSignature, hasTypeBit, isErasureBoundTo, isHierarchyConnected, isInterchangeableWith, isProperType, isSubtypeOf, isTypeVariable, kind, mentionsAny, otherUpperBounds, setFirstBound, setSuperClass, setSuperInterfaces, setTypeAnnotations, superclass, superInterfaces, unannotated, upperBound
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
appendNullAnnotation, applyCloseableClassWhitelists, applyCloseableInterfaceWhitelists, availableFields, availableMethods, binarySearch, binarySearch, canBeSeenBy, canBeSeenBy, canBeSeenBy, computeGenericTypeSignature, computeId, depth, detectAnnotationCycle, enclosingTypeAt, enumConstantCount, fieldCount, fields, getAccessFlags, getAnnotations, getAnnotationTagBits, getEnclosingInstancesSlotSize, getExactConstructor, getExactMethod, getField, getField, getFileName, getMemberType, getMethods, getMethods, getOuterLocalVariablesSlotSize, getPackage, getSingleAbstractMethod, getTypeVariable, hashCode, hasIncompatibleSuperType, hasMemberTypes, hasRestrictedAccess, implementsInterface, innerCanBeSeenBy, innerCanBeSeenBy, isAbstract, isAnnotationType, isBinaryBinding, isClass, isCompatibleWith, isConsistentIntersection, isDefault, isDeprecated, isEnum, isFinal, isFunctionalInterface, isHierarchyBeingActivelyConnected, isHierarchyBeingConnected, isInterface, isOrEnclosedByPrivateType, isPrivate, isProtected, isPublic, isStatic, isStrictfp, isSubTypeOfRTL, isSuperclassOf, isThrowable, isUncheckedException, isUsed, isViewedAsDeprecated, memberTypes, methods, outermostEnclosingType, qualifiedSourceName, retrieveAnnotationHolder, setAnnotations, setContainerAnnotationType, signature, sortFields, sortMethods, sourceName, syntheticEnclosingInstanceTypes, tagAsHavingDefectiveContainerType, unResolvedFields
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding
actualType, capture, closestMatch, collectMissingTypes, containerAnnotationType, dimensions, enclosingType, equalsEquals, findSuperTypeOriginatingFrom, findSuperTypeOriginatingFrom, genericCast, getErasureCompatibleType, getIntersectingTypes, getTypeAnnotations, hasNullTypeAnnotations, hasTypeAnnotations, isAnonymousType, isArrayType, isBaseType, isBoundParameterizedType, isBoxedPrimitiveType, isCompatibleWith, isGenericType, isHierarchyInconsistent, isIntersectionCastType, isIntersectionType, isLocalType, isMemberType, isNestedType, isNumericType, isParameterizedType, isParameterizedTypeWithActualArguments, isParameterizedWithOwnVariables, isPrimitiveOrBoxedPrimitiveType, isPrimitiveType, isProvablyDistinct, isRawType, isReifiable, isRepeatableAnnotationType, isTypeArgumentContainedBy, isUnboundWildcard, isUnresolvedType, isWildcard, leafComponentType, needsUncheckedConversion, notEquals, original, prototype, qualifiedPackageName, sIsMoreSpecific, swapUnresolved, syntheticOuterLocalVariables, typeVariables, wellKnownType
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Binding
computeUniqueKey, initializeDeprecatedAnnotationTagBits, isParameter, isTaggedRepeatable, isValidBinding, isVolatile, problemId, setAnnotations
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

lowerBound

public TypeBinding lowerBound

wildcard

public WildcardBinding wildcard

captureID

public int captureID

sourceType

public ReferenceBinding sourceType

position

public int position
Constructor Detail

CaptureBinding

public CaptureBinding(WildcardBinding wildcard,
                      ReferenceBinding sourceType,
                      int position,
                      int captureID)

CaptureBinding

protected CaptureBinding(ReferenceBinding sourceType,
                         char[] sourceName,
                         int position,
                         int captureID,
                         LookupEnvironment environment)

CaptureBinding

public CaptureBinding(CaptureBinding prototype)
Method Detail

clone

public TypeBinding clone(TypeBinding enclosingType)
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 class TypeVariableBinding

computeUniqueKey

public char[] computeUniqueKey(boolean isLeaf)
Description copied from class: ReferenceBinding
p.X {} -> Lp/X;

Overrides:
computeUniqueKey in class TypeVariableBinding

debugName

public java.lang.String debugName()
Overrides:
debugName in class TypeVariableBinding
See Also:
TypeBinding.debugName()

genericTypeSignature

public char[] genericTypeSignature()
Description copied from class: TypeVariableBinding
T::Ljava/util/Map;:Ljava/io/Serializable; T:LY

Overrides:
genericTypeSignature in class TypeVariableBinding

initializeBounds

public void initializeBounds(Scope scope,
                             ParameterizedTypeBinding capturedParameterizedType)
Initialize capture bounds using substituted supertypes e.g. given X>, capture(X) = X, where capture extends X


isCapture

public boolean isCapture()
Description copied from class: TypeBinding
Returns true if the type is the capture of some wildcard

Overrides:
isCapture in class TypeBinding
See Also:
TypeBinding.isCapture()

isEquivalentTo

public boolean isEquivalentTo(TypeBinding otherType)
Description copied from class: TypeBinding
Returns true if a type is identical to another one, or for generic types, true if compared to its raw type.

Overrides:
isEquivalentTo in class TypeBinding
See Also:
TypeBinding.isEquivalentTo(TypeBinding)

readableName

public char[] readableName()
Description copied from class: ReferenceBinding
Answer the receiver's signature. NOTE: This method should only be used during/after code gen.

Overrides:
readableName in class TypeVariableBinding
See Also:
ReferenceBinding.readableName()

shortReadableName

public char[] shortReadableName()
Overrides:
shortReadableName in class TypeVariableBinding
See Also:
ReferenceBinding.shortReadableName()

nullAnnotatedReadableName

public char[] nullAnnotatedReadableName(CompilerOptions options,
                                        boolean shortNames)
Description copied from class: TypeBinding
Answer a readable name (for error reporting) that includes nullness type annotations.

Overrides:
nullAnnotatedReadableName in class TypeVariableBinding
See Also:
TypeBinding.nullAnnotatedReadableName(CompilerOptions,boolean)

uncapture

public TypeBinding uncapture(Scope scope)
Description copied from class: TypeBinding
Perform capture "deconversion" on a given type

Overrides:
uncapture in class TypeBinding

toString

public java.lang.String toString()
Overrides:
toString in class TypeVariableBinding
See Also:
Object.toString()