Class AinferTestAnnotatedTypeFactory.AinferTestQualifierHierarchy
java.lang.Object
org.checkerframework.framework.type.QualifierHierarchy
org.checkerframework.framework.type.ElementQualifierHierarchy
org.checkerframework.framework.type.MostlyNoElementQualifierHierarchy
org.checkerframework.checker.testchecker.ainfer.AinferTestAnnotatedTypeFactory.AinferTestQualifierHierarchy
- Enclosing class:
AinferTestAnnotatedTypeFactory
protected class AinferTestAnnotatedTypeFactory.AinferTestQualifierHierarchy
extends MostlyNoElementQualifierHierarchy
Using a MultiGraphQualifierHierarchy to enable tests with Annotations that contain fields.
- See Also:
-
Field Summary
Fields inherited from class org.checkerframework.framework.type.ElementQualifierHierarchy
bottoms, bottomsMap, kindToElementlessQualifier, qualifierKindHierarchy, tops, topsMapFields inherited from class org.checkerframework.framework.type.QualifierHierarchy
atypeFactory -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAinferTestQualifierHierarchy(Collection<Class<? extends Annotation>> qualifierClasses, Elements elements) Creates a AinferTestQualifierHierarchy from the given classes. -
Method Summary
Modifier and TypeMethodDescriptionReturn the bottom for the given qualifier, that is, the qualifier that is a subtype ofqualifierbut no further subtypes exist.Returns the bottom type qualifiers in the hierarchy.protected AnnotationMirrorgreatestLowerBoundWithElements(AnnotationMirror a1, QualifierKind qualifierKind1, AnnotationMirror a2, QualifierKind qualifierKind2, QualifierKind glbKind) Returns the greatest lower bound ofa1anda2in cases where the glb ofqualifierKind1andqualifierKind2is a qualifier kind that has elements.protected booleanisSubtypeWithElements(AnnotationMirror subAnno, QualifierKind subKind, AnnotationMirror superAnno, QualifierKind superKind) Returns true ifsubAnnois a subtype ofsuperAnno.protected AnnotationMirrorleastUpperBoundWithElements(AnnotationMirror a1, QualifierKind qualifierKind1, AnnotationMirror a2, QualifierKind qualifierKind2, QualifierKind lubKind) Returns the least upper bound ofa1anda2in cases where the lub ofqualifierKind1andqualifierKind2is a qualifier kind that has elements.Methods inherited from class org.checkerframework.framework.type.MostlyNoElementQualifierHierarchy
greatestLowerBoundQualifiers, isSubtypeQualifiers, leastUpperBoundQualifiersMethods inherited from class org.checkerframework.framework.type.ElementQualifierHierarchy
createBottomsMap, createElementlessQualifierMap, createQualifierKindHierarchy, createTopsMap, findAnnotationInHierarchy, findAnnotationInSameHierarchy, getPolymorphicAnnotation, getQualifierKind, getQualifierKind, getTopAnnotation, getTopAnnotations, isPolymorphicQualifier, isValidMethods inherited from class org.checkerframework.framework.type.QualifierHierarchy
assertSameSize, assertSameSize, canHaveEmptyAnnotationSet, getParametricQualifier, getWidth, greatestLowerBoundQualifiersOnly, greatestLowerBoundShallow, greatestLowerBoundsQualifiersOnly, greatestLowerBoundsQualifiersOnly, greatestLowerBoundsShallow, isParametricQualifier, isSubtypeQualifiersOnly, isSubtypeQualifiersOnly, isSubtypeShallow, isSubtypeShallow, isSubtypeShallow, isSubtypeShallow, isTop, leastUpperBoundQualifiersOnly, leastUpperBoundShallow, leastUpperBoundsQualifiersOnly, leastUpperBoundsQualifiersOnly, leastUpperBoundsShallow, numberOfIterationsBeforeWidening, updateMappingToMutableSet, widenedUpperBound
-
Constructor Details
-
AinferTestQualifierHierarchy
protected AinferTestQualifierHierarchy(Collection<Class<? extends Annotation>> qualifierClasses, Elements elements) Creates a AinferTestQualifierHierarchy from the given classes.- Parameters:
qualifierClasses- classes of annotations that are the qualifiers for this hierarchyelements- element utils
-
-
Method Details
-
getBottomAnnotation
Description copied from class:QualifierHierarchyReturn the bottom for the given qualifier, that is, the qualifier that is a subtype ofqualifierbut no further subtypes exist.- Overrides:
getBottomAnnotationin classElementQualifierHierarchy- Parameters:
start- any qualifier from one of the qualifier hierarchies represented by this- Returns:
- the bottom qualifier of
qualifier's hierarchy
-
getBottomAnnotations
Description copied from class:QualifierHierarchyReturns the bottom type qualifiers in the hierarchy. The size of this set is equal toQualifierHierarchy.getWidth().- Overrides:
getBottomAnnotationsin classElementQualifierHierarchy- Returns:
- the bottom type qualifiers in the hierarchy
-
greatestLowerBoundWithElements
protected AnnotationMirror greatestLowerBoundWithElements(AnnotationMirror a1, QualifierKind qualifierKind1, AnnotationMirror a2, QualifierKind qualifierKind2, QualifierKind glbKind) Description copied from class:MostlyNoElementQualifierHierarchyReturns the greatest lower bound ofa1anda2in cases where the glb ofqualifierKind1andqualifierKind2is a qualifier kind that has elements. If the glb ofqualifierKind1andqualifierKind2does not have elements, thenQualifierHierarchy.greatestLowerBoundShallow(AnnotationMirror, TypeMirror, AnnotationMirror, TypeMirror)returns the correctAnnotationMirrorwithout calling this method.- Specified by:
greatestLowerBoundWithElementsin classMostlyNoElementQualifierHierarchy- Parameters:
a1- first annotationqualifierKind1- QualifierKind fora1a2- second annotationqualifierKind2- QualifierKind fora2- Returns:
- the greatest lower bound between
a1anda2
-
leastUpperBoundWithElements
protected AnnotationMirror leastUpperBoundWithElements(AnnotationMirror a1, QualifierKind qualifierKind1, AnnotationMirror a2, QualifierKind qualifierKind2, QualifierKind lubKind) Description copied from class:MostlyNoElementQualifierHierarchyReturns the least upper bound ofa1anda2in cases where the lub ofqualifierKind1andqualifierKind2is a qualifier kind that has elements. If the lub ofqualifierKind1andqualifierKind2does not have elements, thenQualifierHierarchy.leastUpperBoundShallow(AnnotationMirror, TypeMirror, AnnotationMirror, TypeMirror)returns the correctAnnotationMirrorwithout calling this method.- Specified by:
leastUpperBoundWithElementsin classMostlyNoElementQualifierHierarchy- Parameters:
a1- first annotationqualifierKind1- QualifierKind fora1a2- second annotationqualifierKind2- QualifierKind fora2lubKind- the kind of the lub ofqualifierKind1andqualifierKind2- Returns:
- the least upper bound of
a1anda2
-
isSubtypeWithElements
protected boolean isSubtypeWithElements(AnnotationMirror subAnno, QualifierKind subKind, AnnotationMirror superAnno, QualifierKind superKind) Description copied from class:MostlyNoElementQualifierHierarchyReturns true ifsubAnnois a subtype ofsuperAnno. BothsubAnnoandsuperAnnoare annotations with elements.subKindis a sub qualifier kind ofsuperKind.- Specified by:
isSubtypeWithElementsin classMostlyNoElementQualifierHierarchy- Parameters:
subAnno- possible subtype annotation; has elementssubKind- the QualifierKind ofsubAnnosuperAnno- possible super annotation; has elementssuperKind- the QualifierKind ofsuperAnno- Returns:
- true if
subAnnois a subtype ofsuperAnno
-