protected class ClassValAnnotatedTypeFactory.ClassValQualifierHierarchy extends MultiGraphQualifierHierarchy
MultiGraphQualifierHierarchy.MultiGraphFactorybottoms, polymorphicQualifier, polyQualifiers, supertypesDirect, supertypesTransitive, tops| Constructor and Description |
|---|
ClassValQualifierHierarchy(MultiGraphQualifierHierarchy.MultiGraphFactory f) |
| Modifier and Type | Method and Description |
|---|---|
AnnotationMirror |
greatestLowerBound(AnnotationMirror a1,
AnnotationMirror a2)
Returns the greatest lower bound for the qualifiers a1 and a2.
|
boolean |
isSubtype(AnnotationMirror subAnno,
AnnotationMirror superAnno)
Tests whether rhs is equal to or a sub-qualifier of lhs, according to the type qualifier
hierarchy.
|
AnnotationMirror |
leastUpperBound(AnnotationMirror a1,
AnnotationMirror a2)
Returns the least upper bound for the qualifiers a1 and a2.
|
addPolyRelations, findBottoms, findLub, findTops, finish, getBottomAnnotation, getBottomAnnotations, getPolymorphicAnnotation, getTopAnnotation, getTopAnnotations, getTypeQualifiers, greatestLowerBoundTypeVariable, isSubtype, isSubtypeTypeVariable, isSubtypeTypeVariable, leastUpperBoundTypeVariable, toString, transitiveClosurecanHaveEmptyAnnotationSet, findAnnotationInHierarchy, findAnnotationInSameHierarchy, getWidth, greatestLowerBound, greatestLowerBounds, greatestLowerBounds, greatestLowerBoundsTypeVariable, isSubtype, isSubtype, isValid, leastUpperBound, leastUpperBounds, leastUpperBounds, leastUpperBoundsTypeVariable, numberOfIterationsBeforeWidening, replacePolyAll, updateMappingToMutableSet, widenedUpperBoundpublic ClassValQualifierHierarchy(MultiGraphQualifierHierarchy.MultiGraphFactory f)
public AnnotationMirror leastUpperBound(AnnotationMirror a1, AnnotationMirror a2)
QualifierHierarchyExamples:
leastUpperBound in class MultiGraphQualifierHierarchypublic AnnotationMirror greatestLowerBound(AnnotationMirror a1, AnnotationMirror a2)
QualifierHierarchyThe two qualifiers have to be from the same qualifier hierarchy. Otherwise, null will be returned.
greatestLowerBound in class MultiGraphQualifierHierarchya1 - first annotationa2 - second annotationpublic boolean isSubtype(AnnotationMirror subAnno, AnnotationMirror superAnno)
MultiGraphQualifierHierarchyMost qualifiers have no value fields. However, two annotations with values are subtype of each other only if they have the same values. i.e. I(m) is a subtype of I(n) iff m = n.
When client specifies an annotation, a1, to be a subtype of annotation with values, a2, then a1 is a subtype of all instances of a2 regardless of a2 values.
isSubtype in class MultiGraphQualifierHierarchysubAnno - the sub qualifiersuperAnno - the super qualifier