Class TypeConformanceComputer.MaxDistanceRawTypeAcceptor

  • All Implemented Interfaces:
    SuperTypeAcceptor
    Enclosing class:
    TypeConformanceComputer

    protected static class TypeConformanceComputer.MaxDistanceRawTypeAcceptor
    extends java.lang.Object
    implements SuperTypeAcceptor
    Populates a Multiset with the maximum number of necessary steps from a given type to its super types. Sorting the set by the steps creates a stable order on from the direct super class, the most specialized implemented interfaces up to object. E.g. although StringBuilder implements Serializable and CharSequence, serializable is treated as more specific by this algorithm since the super class AbstractStringBuilder implements CharSequence, too. Thus the number of steps to Serializable is 1 while CharSequence requires 2 hops.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected MaxDistanceRawTypeAcceptor​(com.google.common.collect.Multiset<org.eclipse.xtext.common.types.JvmType> result, com.google.common.collect.Multimap<org.eclipse.xtext.common.types.JvmType,​LightweightTypeReference> all)  
    • Constructor Detail

      • MaxDistanceRawTypeAcceptor

        protected MaxDistanceRawTypeAcceptor​(com.google.common.collect.Multiset<org.eclipse.xtext.common.types.JvmType> result,
                                             com.google.common.collect.Multimap<org.eclipse.xtext.common.types.JvmType,​LightweightTypeReference> all)
    • Method Detail

      • accept

        public boolean accept​(LightweightTypeReference superType,
                              int distance)
        Specified by:
        accept in interface SuperTypeAcceptor
        Parameters:
        superType - a visited super type
        distance - the distance to the starting type. StringBuilder has a distance 1 to AbstractStringBuilder, distance 1 and 2 to CharSequence and distance 2 to Appendable.