org.eclipse.xtext.common.types.util
Class TypeConformanceComputer.MaxDistanceRawTypeAcceptor
java.lang.Object
org.eclipse.xtext.common.types.util.TypeConformanceComputer.MaxDistanceRawTypeAcceptor
- All Implemented Interfaces:
- SuperTypeCollector.SuperTypeAcceptor
- Enclosing class:
- TypeConformanceComputer
protected static class TypeConformanceComputer.MaxDistanceRawTypeAcceptor
- extends java.lang.Object
- implements SuperTypeCollector.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.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TypeConformanceComputer.MaxDistanceRawTypeAcceptor
protected TypeConformanceComputer.MaxDistanceRawTypeAcceptor(com.google.common.collect.Multiset<JvmType> result,
com.google.common.collect.Multimap<JvmType,JvmTypeReference> all,
com.google.common.base.Function<JvmTypeReference,JvmTypeReference> resolver)
accept
public boolean accept(JvmTypeReference superType,
int distance)
- Specified by:
accept
in interface SuperTypeCollector.SuperTypeAcceptor
- Parameters:
superType
- a found super typedistance
- the distance to the starting type. StringBuilder has a distance 1 to
AbstractStringBuilder, distance 1 and 2 to CharSequence and distance 2 to Appendable.