Class GlbUtil


  • public class GlbUtil
    extends java.lang.Object
    A class used to determine the greatest lower bounds for a set of AnnotatedTypeMirrors.
    • Constructor Detail

      • GlbUtil

        public GlbUtil()
    • Method Detail

      • glbAll

        public static @Nullable AnnotatedTypeMirror glbAll​(java.util.Map<AnnotatedTypeMirror,​AnnotationMirrorSet> typeMirrors,
                                                           AnnotatedTypeFactory atypeFactory)
        Returns the greatest lower bound of the given TypeMirrors. If any of the type mirrors are incomparable, Returns an AnnotatedNullType that contains the greatest lower bounds of the primary annotations of typeMirrors.

        Note: This method can be improved for wildcards and type variables.

        Parameters:
        typeMirrors - the types to glb
        atypeFactory - the type factory
        Returns:
        the greatest lower bound of typeMirrors
      • sortForGlb

        public static void sortForGlb​(java.util.List<? extends AnnotatedTypeMirror> typeMirrors,
                                      AnnotatedTypeFactory atypeFactory)
        Sort the list of type mirrors, placing supertypes first and subtypes last.

        E.g. the list: ArrayList<String>, List<String>, AbstractList<String> becomes: List<String>, AbstractList<String>, ArrayList<String>

        Parameters:
        typeMirrors - the list to sort in place
        atypeFactory - the type factory