Class TypeConformanceComputer.MaxDistanceRawTypeAcceptor
- java.lang.Object
-
- org.eclipse.xtext.xbase.typesystem.conformance.TypeConformanceComputer.MaxDistanceRawTypeAcceptor
-
- All Implemented Interfaces:
SuperTypeAcceptor
- Enclosing class:
- TypeConformanceComputer
protected static class TypeConformanceComputer.MaxDistanceRawTypeAcceptor extends java.lang.Object implements SuperTypeAcceptor
Populates aMultisetwith 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. althoughStringBuilderimplementsSerializableandCharSequence, serializable is treated as more specific by this algorithm since the super class AbstractStringBuilder implementsCharSequence, too. Thus the number of steps toSerializableis1whileCharSequencerequires2hops.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedMaxDistanceRawTypeAcceptor(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 Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaccept(LightweightTypeReference superType, int distance)
-
-
-
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:
acceptin interfaceSuperTypeAcceptor- Parameters:
superType- a visited 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.
-
-