Class AnnotatedTypeMirror.AnnotatedWildcardType
java.lang.Object
org.checkerframework.framework.type.AnnotatedTypeMirror
org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedWildcardType
- All Implemented Interfaces:
org.plumelib.util.DeepCopyable<AnnotatedTypeMirror>
- Enclosing class:
AnnotatedTypeMirror
Represents a wildcard type argument. Examples include:
? ? extends Number ? super T
A wildcard may have its upper bound explicitly set by an extends clause, its lower bound explicitly set by a super clause, or neither (but not both).
-
Nested Class Summary
Nested classes/interfaces inherited from class org.checkerframework.framework.type.AnnotatedTypeMirror
AnnotatedTypeMirror.AnnotatedArrayType, AnnotatedTypeMirror.AnnotatedDeclaredType, AnnotatedTypeMirror.AnnotatedExecutableType, AnnotatedTypeMirror.AnnotatedIntersectionType, AnnotatedTypeMirror.AnnotatedNoType, AnnotatedTypeMirror.AnnotatedNullType, AnnotatedTypeMirror.AnnotatedPrimitiveType, AnnotatedTypeMirror.AnnotatedTypeVariable, AnnotatedTypeMirror.AnnotatedUnionType, AnnotatedTypeMirror.AnnotatedWildcardType -
Field Summary
Fields inherited from class org.checkerframework.framework.type.AnnotatedTypeMirror
atypeFactory, EQUALITY_COMPARER, HASHCODE_VISITOR, primaryAnnotations, underlyingType -
Method Summary
Modifier and TypeMethodDescription<R,P> R accept(AnnotatedTypeVisitor<R, P> v, P p) Applies a visitor to this type.voidaddAnnotation(AnnotationMirror annotation) Adds the canonical version ofannotationas a primary annotation of this type and, in the case ofAnnotatedTypeMirror.AnnotatedTypeVariables,AnnotatedTypeMirror.AnnotatedWildcardTypes, andAnnotatedTypeMirror.AnnotatedIntersectionTypes, adds it to all bounds.deepCopy()Returns a deep copy of this type with annotations.deepCopy(boolean copyAnnotations) Returns a deep copy of this type.Returns the erasure type of this type, according to JLS specifications.Returns the upper bound of this wildcard.Returns the lower bound of this wildcard.Returns the type variable to which this wildcard is an argument.Returns the underlying unannotated Java type, which this wraps.booleanWhether this is a type argument to a type whose#underlyingTypeis raw.voidSets the upper bound of this wildcard.voidSets the super bound of this wildcard.voidSet that this wildcard is a type argument of a raw type.Returns a shallow copy of this type with annotations.shallowCopy(boolean copyAnnotations) Returns a shallow copy of this type.Methods inherited from class org.checkerframework.framework.type.AnnotatedTypeMirror
addAnnotation, addAnnotations, addMissingAnnotation, addMissingAnnotations, asUse, clearAnnotations, clearPrimaryAnnotations, containsCapturedTypes, createType, createTypeOfObject, createTypeOfRecord, directSupertypes, equals, getAnnotation, getAnnotation, getAnnotation, getAnnotationInHierarchy, getAnnotations, getAnnotationsField, getEffectiveAnnotation, getEffectiveAnnotation, getEffectiveAnnotationInHierarchy, getEffectiveAnnotations, getExplicitAnnotations, getKind, getPrimaryAnnotation, getPrimaryAnnotation, getPrimaryAnnotation, getPrimaryAnnotationInHierarchy, getPrimaryAnnotations, getPrimaryAnnotationsField, getPrimitiveKind, getUnderlyingTypeHashCode, hasAnnotation, hasAnnotation, hasAnnotationInHierarchy, hasAnnotationRelaxed, hasEffectiveAnnotation, hasEffectiveAnnotation, hasEffectiveAnnotationRelaxed, hasExplicitAnnotation, hasExplicitAnnotation, hasExplicitAnnotationRelaxed, hashCode, hasPrimaryAnnotation, hasPrimaryAnnotation, hasPrimaryAnnotationInHierarchy, hasPrimaryAnnotationRelaxed, isAnnotatedInHierarchy, isDeclaration, removeAnnotation, removeAnnotationByClass, removeAnnotationInHierarchy, removeNonTopAnnotationInHierarchy, removePrimaryAnnotation, removePrimaryAnnotationByClass, removePrimaryAnnotationInHierarchy, removePrimaryAnnotations, replaceAnnotation, replaceAnnotations, toString, toString
-
Method Details
-
addAnnotation
Description copied from class:AnnotatedTypeMirrorAdds the canonical version ofannotationas a primary annotation of this type and, in the case ofAnnotatedTypeMirror.AnnotatedTypeVariables,AnnotatedTypeMirror.AnnotatedWildcardTypes, andAnnotatedTypeMirror.AnnotatedIntersectionTypes, adds it to all bounds. (The canonical version is found viaAnnotatedTypeFactory.canonicalAnnotation(javax.lang.model.element.AnnotationMirror).) If the canonical version ofannotationis not a supported qualifier, then no annotation is added. If this type already has annotation in the same hierarchy asannotation, the behavior of this method is undefined.- Overrides:
addAnnotationin classAnnotatedTypeMirror- Parameters:
annotation- the annotation to add
-
setSuperBound
Sets the super bound of this wildcard.- Parameters:
type- the type of the lower bound
-
getSuperBoundField
-
getSuperBound
Returns the lower bound of this wildcard. If no lower bound is explicitly declared, returns anAnnotatedTypeMirror.AnnotatedNullType.- Returns:
- the lower bound of this wildcard, or an
AnnotatedTypeMirror.AnnotatedNullTypeif none is explicitly declared
-
setExtendsBound
Sets the upper bound of this wildcard.- Parameters:
type- the type of the upper bound
-
getExtendsBoundField
-
getExtendsBound
Returns the upper bound of this wildcard. If no upper bound is explicitly declared, returns the upper bound of the type variable to which the wildcard is bound.- Returns:
- the upper bound of this wildcard. If no upper bound is explicitly declared, returns the upper bound of the type variable to which the wildcard is bound.
-
getTypeVariable
Returns the type variable to which this wildcard is an argument. Used to initialize the upper bound of wildcards in raw types.- Returns:
- the type variable to which this wildcard is an argument
-
accept
Description copied from class:AnnotatedTypeMirrorApplies a visitor to this type.- Specified by:
acceptin classAnnotatedTypeMirror- Type Parameters:
R- the return type of the visitor's methodsP- the type of the additional parameter to the visitor's methods- Parameters:
v- the visitor operating on this typep- additional parameter to the visitor- Returns:
- a visitor-specified result
-
getUnderlyingType
Description copied from class:AnnotatedTypeMirrorReturns the underlying unannotated Java type, which this wraps.- Overrides:
getUnderlyingTypein classAnnotatedTypeMirror- Returns:
- the underlying type
-
deepCopy
Description copied from class:AnnotatedTypeMirrorReturns a deep copy of this type. A deep copy implies that each component type is copied recursively and the returned type refers to those copies in its component locations.Note: deepCopy provides two important properties in the returned copy:
- Structure preservation -- The exact structure of the original AnnotatedTypeMirror is preserved in the copy including all component types.
- Annotation preservation -- All of the annotations from the original AnnotatedTypeMirror and its components have been copied to the new type.
- Specified by:
deepCopyin classAnnotatedTypeMirror- Returns:
- a deep copy
-
deepCopy
Description copied from class:AnnotatedTypeMirrorReturns a deep copy of this type with annotations.Each subclass implements this method with the subclass return type. The method body must always be a call to deepCopy(true).
- Specified by:
deepCopyin interfaceorg.plumelib.util.DeepCopyable<AnnotatedTypeMirror>- Specified by:
deepCopyin classAnnotatedTypeMirror- Returns:
- a deep copy of this type with annotations
- See Also:
-
shallowCopy
Description copied from class:AnnotatedTypeMirrorReturns a shallow copy of this type. A shallow copy implies that each component type in the output copy refers to the same object as the object being copied.- Specified by:
shallowCopyin classAnnotatedTypeMirror- Parameters:
copyAnnotations- whether copy should have annotations, i.e. whether fieldannotationsshould be copied.
-
shallowCopy
Description copied from class:AnnotatedTypeMirrorReturns a shallow copy of this type with annotations.Each subclass implements this method with the subclass return type. The method body must always be a call to shallowCopy(true).
- Specified by:
shallowCopyin classAnnotatedTypeMirror- Returns:
- a shallow copy of this type with annotations
- See Also:
-
getErased
Description copied from class:AnnotatedTypeMirrorReturns the erasure type of this type, according to JLS specifications.- Overrides:
getErasedin classAnnotatedTypeMirror- Returns:
- the erasure of this AnnotatedTypeMirror, this is always a copy even if the erasure and the original type are equivalent
- See Also:
-
setTypeArgOfRawType
public void setTypeArgOfRawType()Set that this wildcard is a type argument of a raw type. -
isTypeArgOfRawType
public boolean isTypeArgOfRawType()Whether this is a type argument to a type whose#underlyingTypeis raw. The Checker Framework gives raw types wildcard type arguments so that the annotated type can be used as if the annotated type was not raw.- Returns:
- whether this is a type argument to a type whose
#underlyingTypeis raw
-