org.eclipse.xtext.common.types.util
Class TypeConformanceStrategy<T extends JvmTypeReference>

java.lang.Object
  extended by org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter<Parameter,Result>
      extended by org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T>,TypeConformanceResult>
          extended by org.eclipse.xtext.common.types.util.AbstractConformanceVisitor<T>
              extended by org.eclipse.xtext.common.types.util.TypeConformanceStrategy<T>
All Implemented Interfaces:
ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T>,TypeConformanceResult>
Direct Known Subclasses:
AnyTypeConformanceStrategy, GenericArrayConformanceStrategy, MultiTypeConformanceStrategy, ParameterizedTypeConformanceStrategy, SynonymConformanceStrategy, WildcardConformanceStrategy

public abstract class TypeConformanceStrategy<T extends JvmTypeReference>
extends AbstractConformanceVisitor<T>

Author:
Sebastian Zarnekow - Initial contribution and API

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter
AbstractTypeReferenceVisitorWithParameter.InheritanceAware<Parameter,Result>
 
Field Summary
protected  TypeConformanceComputer conformanceComputer
           
 
Constructor Summary
protected TypeConformanceStrategy(TypeConformanceComputer conformanceComputer)
           
 
Method Summary
 TypeConformanceResult doVisitAnyTypeReference(JvmAnyTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitAnyTypeReference(T left, JvmAnyTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitCompoundTypeReference(JvmCompoundTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitCompoundTypeReference(T left, JvmCompoundTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitDelegateTypeReference(JvmDelegateTypeReference right, TypeConformanceComputationArgument.Internal<T> parameter)
           
 TypeConformanceResult doVisitDelegateTypeReference(T left, JvmDelegateTypeReference right, TypeConformanceComputationArgument.Internal<T> parameter)
           
 TypeConformanceResult doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitGenericArrayTypeReference(T left, JvmGenericArrayTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitMultiTypeReference(JvmMultiTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitMultiTypeReference(T left, JvmMultiTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitParameterizedTypeReference(JvmParameterizedTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitParameterizedTypeReference(T left, JvmParameterizedTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitSpecializedTypeReference(JvmSpecializedTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitSpecializedTypeReference(T left, JvmSpecializedTypeReference right, TypeConformanceComputationArgument.Internal<T> parameter)
           
 TypeConformanceResult doVisitSynonymTypeReference(JvmSynonymTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitSynonymTypeReference(T left, JvmSynonymTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitTypeReference(JvmTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitTypeReference(T left, JvmTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitUnknownTypeReference(JvmUnknownTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitUnknownTypeReference(T left, JvmUnknownTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitWildcardTypeReference(JvmWildcardTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 TypeConformanceResult doVisitWildcardTypeReference(T left, JvmWildcardTypeReference right, TypeConformanceComputationArgument.Internal<T> param)
           
 
Methods inherited from class org.eclipse.xtext.common.types.util.AbstractConformanceVisitor
handleNullReference
 
Methods inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter
visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

conformanceComputer

protected final TypeConformanceComputer conformanceComputer
Constructor Detail

TypeConformanceStrategy

protected TypeConformanceStrategy(TypeConformanceComputer conformanceComputer)
Method Detail

doVisitAnyTypeReference

public final TypeConformanceResult doVisitAnyTypeReference(JvmAnyTypeReference right,
                                                           TypeConformanceComputationArgument.Internal<T> param)
Specified by:
doVisitAnyTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitAnyTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitAnyTypeReference

public TypeConformanceResult doVisitAnyTypeReference(T left,
                                                     JvmAnyTypeReference right,
                                                     TypeConformanceComputationArgument.Internal<T> param)

doVisitCompoundTypeReference

public final TypeConformanceResult doVisitCompoundTypeReference(JvmCompoundTypeReference right,
                                                                TypeConformanceComputationArgument.Internal<T> param)
Specified by:
doVisitCompoundTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitCompoundTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitCompoundTypeReference

public TypeConformanceResult doVisitCompoundTypeReference(T left,
                                                          JvmCompoundTypeReference right,
                                                          TypeConformanceComputationArgument.Internal<T> param)

doVisitDelegateTypeReference

public final TypeConformanceResult doVisitDelegateTypeReference(JvmDelegateTypeReference right,
                                                                TypeConformanceComputationArgument.Internal<T> parameter)
Specified by:
doVisitDelegateTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitDelegateTypeReference in class AbstractTypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitDelegateTypeReference

public TypeConformanceResult doVisitDelegateTypeReference(T left,
                                                          JvmDelegateTypeReference right,
                                                          TypeConformanceComputationArgument.Internal<T> parameter)

doVisitGenericArrayTypeReference

public final TypeConformanceResult doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference right,
                                                                    TypeConformanceComputationArgument.Internal<T> param)
Specified by:
doVisitGenericArrayTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitGenericArrayTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitGenericArrayTypeReference

public TypeConformanceResult doVisitGenericArrayTypeReference(T left,
                                                              JvmGenericArrayTypeReference right,
                                                              TypeConformanceComputationArgument.Internal<T> param)

doVisitParameterizedTypeReference

public final TypeConformanceResult doVisitParameterizedTypeReference(JvmParameterizedTypeReference right,
                                                                     TypeConformanceComputationArgument.Internal<T> param)
Specified by:
doVisitParameterizedTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitParameterizedTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitParameterizedTypeReference

public TypeConformanceResult doVisitParameterizedTypeReference(T left,
                                                               JvmParameterizedTypeReference right,
                                                               TypeConformanceComputationArgument.Internal<T> param)

doVisitSpecializedTypeReference

public final TypeConformanceResult doVisitSpecializedTypeReference(JvmSpecializedTypeReference right,
                                                                   TypeConformanceComputationArgument.Internal<T> param)
Specified by:
doVisitSpecializedTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitSpecializedTypeReference in class AbstractTypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitSpecializedTypeReference

public TypeConformanceResult doVisitSpecializedTypeReference(T left,
                                                             JvmSpecializedTypeReference right,
                                                             TypeConformanceComputationArgument.Internal<T> parameter)

doVisitTypeReference

public final TypeConformanceResult doVisitTypeReference(JvmTypeReference right,
                                                        TypeConformanceComputationArgument.Internal<T> param)
Specified by:
doVisitTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitTypeReference

public TypeConformanceResult doVisitTypeReference(T left,
                                                  JvmTypeReference right,
                                                  TypeConformanceComputationArgument.Internal<T> param)

doVisitUnknownTypeReference

public final TypeConformanceResult doVisitUnknownTypeReference(JvmUnknownTypeReference right,
                                                               TypeConformanceComputationArgument.Internal<T> param)
Specified by:
doVisitUnknownTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitUnknownTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitUnknownTypeReference

public TypeConformanceResult doVisitUnknownTypeReference(T left,
                                                         JvmUnknownTypeReference right,
                                                         TypeConformanceComputationArgument.Internal<T> param)

doVisitWildcardTypeReference

public final TypeConformanceResult doVisitWildcardTypeReference(JvmWildcardTypeReference right,
                                                                TypeConformanceComputationArgument.Internal<T> param)
Specified by:
doVisitWildcardTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitWildcardTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitWildcardTypeReference

public TypeConformanceResult doVisitWildcardTypeReference(T left,
                                                          JvmWildcardTypeReference right,
                                                          TypeConformanceComputationArgument.Internal<T> param)

doVisitMultiTypeReference

public final TypeConformanceResult doVisitMultiTypeReference(JvmMultiTypeReference right,
                                                             TypeConformanceComputationArgument.Internal<T> param)
Specified by:
doVisitMultiTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitMultiTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitMultiTypeReference

public TypeConformanceResult doVisitMultiTypeReference(T left,
                                                       JvmMultiTypeReference right,
                                                       TypeConformanceComputationArgument.Internal<T> param)

doVisitSynonymTypeReference

public final TypeConformanceResult doVisitSynonymTypeReference(JvmSynonymTypeReference right,
                                                               TypeConformanceComputationArgument.Internal<T> param)
Specified by:
doVisitSynonymTypeReference in interface ITypeReferenceVisitorWithParameter<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>
Overrides:
doVisitSynonymTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<TypeConformanceComputationArgument.Internal<T extends JvmTypeReference>,TypeConformanceResult>

doVisitSynonymTypeReference

public TypeConformanceResult doVisitSynonymTypeReference(T left,
                                                         JvmSynonymTypeReference right,
                                                         TypeConformanceComputationArgument.Internal<T> param)