Class MostlyNoElementQualifierHierarchy

Direct Known Subclasses:
FenumAnnotatedTypeFactory.FenumQualifierHierarchy, InitializationAnnotatedTypeFactory.InitializationQualifierHierarchy, SubtypeIsSubsetQualifierHierarchy, SubtypeIsSupersetQualifierHierarchy, UnitsAnnotatedTypeFactory.UnitsQualifierHierarchy

@AnnotatedFor("nullness") public abstract class MostlyNoElementQualifierHierarchy extends ElementQualifierHierarchy
A QualifierHierarchy where qualifiers may be represented by annotations with elements, but most of the qualifiers do not have elements. In contrast to ElementQualifierHierarchy, this class partially implements QualifierHierarchy.isSubtypeShallow(AnnotationMirror, TypeMirror, AnnotationMirror, TypeMirror), QualifierHierarchy.leastUpperBoundShallow(AnnotationMirror, TypeMirror, AnnotationMirror, TypeMirror), and QualifierHierarchy.greatestLowerBoundShallow(AnnotationMirror, TypeMirror, AnnotationMirror, TypeMirror) and calls *WithElements when the result cannot be computed from the meta-annotations SubtypeOf.

Subclasses must implement the following methods when annotations have elements:

MostlyNoElementQualifierHierarchy uses a QualifierKindHierarchy to model the relationships between qualifiers. Subclasses can override ElementQualifierHierarchy.createQualifierKindHierarchy(Collection) to return a subclass of QualifierKindHierarchy.