org.eclipse.xtext.xbase.typesystem.util
Class TypeParameterSubstitutor

java.lang.Object
  extended by org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter<Parameter,Result>
      extended by org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter.InheritanceAware<Parameter,Result>
          extended by org.eclipse.xtext.xtype.util.AbstractXtypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>
              extended by org.eclipse.xtext.xbase.typesystem.util.TypeParameterSubstitutor
All Implemented Interfaces:
ITypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>, XtypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>
Direct Known Subclasses:
TypeParameterByConstraintSubstitutor, UnboundTypeParameterPreservingSubstitutor

public class TypeParameterSubstitutor
extends AbstractXtypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>

Author:
Sebastian Zarnekow - Initial contribution and API TODO JavaDoc, toString

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter
AbstractTypeReferenceVisitorWithParameter.InheritanceAware<Parameter,Result>
 
Constructor Summary
TypeParameterSubstitutor(java.util.Map<JvmTypeParameter,JvmTypeReference> typeParameterMapping, CommonTypeComputationServices services)
           
 
Method Summary
 JvmTypeReference doVisitAnyTypeReference(JvmAnyTypeReference reference, java.util.Set<JvmTypeParameter> visiting)
           
 JvmTypeReference doVisitFunctionTypeReference(XFunctionTypeRef reference, java.util.Set<JvmTypeParameter> visiting)
           
 JvmTypeReference doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference reference, java.util.Set<JvmTypeParameter> visiting)
           
 JvmTypeReference doVisitMultiTypeReference(JvmMultiTypeReference reference, java.util.Set<JvmTypeParameter> visiting)
           
 JvmTypeReference doVisitParameterizedTypeReference(JvmParameterizedTypeReference reference, java.util.Set<JvmTypeParameter> visiting)
           
 JvmTypeReference doVisitSynonymTypeReference(JvmSynonymTypeReference reference, java.util.Set<JvmTypeParameter> visiting)
           
 JvmTypeReference doVisitUnknownTypeReference(JvmUnknownTypeReference reference, java.util.Set<JvmTypeParameter> visiting)
           
 JvmTypeReference doVisitWildcardTypeReference(JvmWildcardTypeReference reference, java.util.Set<JvmTypeParameter> visiting)
           
 void enhanceMapping(java.util.Map<JvmTypeParameter,JvmTypeReference> typeParameterMapping)
           
protected  CommonTypeComputationServices getServices()
           
protected  java.util.Map<JvmTypeParameter,JvmTypeReference> getTypeParameterMapping()
           
protected  JvmTypeReference handleNullReference(java.util.Set<JvmTypeParameter> visiting)
           
 JvmTypeReference substitute(JvmTypeReference original)
           
 
Methods inherited from class org.eclipse.xtext.xtype.util.AbstractXtypeReferenceVisitorWithParameter
doVisitComputedTypeReference
 
Methods inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter.InheritanceAware
doVisitCompoundTypeReference, doVisitTypeReference
 
Methods inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter
doVisitDelegateTypeReference, doVisitSpecializedTypeReference, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.xtext.common.types.util.ITypeReferenceVisitorWithParameter
doVisitCompoundTypeReference, doVisitDelegateTypeReference, doVisitSpecializedTypeReference, doVisitTypeReference, visit
 

Constructor Detail

TypeParameterSubstitutor

public TypeParameterSubstitutor(java.util.Map<JvmTypeParameter,JvmTypeReference> typeParameterMapping,
                                CommonTypeComputationServices services)
Method Detail

getTypeParameterMapping

protected java.util.Map<JvmTypeParameter,JvmTypeReference> getTypeParameterMapping()

getServices

protected CommonTypeComputationServices getServices()

handleNullReference

protected JvmTypeReference handleNullReference(java.util.Set<JvmTypeParameter> visiting)
Overrides:
handleNullReference in class AbstractTypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>

enhanceMapping

public void enhanceMapping(java.util.Map<JvmTypeParameter,JvmTypeReference> typeParameterMapping)

doVisitFunctionTypeReference

public JvmTypeReference doVisitFunctionTypeReference(XFunctionTypeRef reference,
                                                     java.util.Set<JvmTypeParameter> visiting)
Specified by:
doVisitFunctionTypeReference in interface XtypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>
Overrides:
doVisitFunctionTypeReference in class AbstractXtypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>

doVisitParameterizedTypeReference

public JvmTypeReference doVisitParameterizedTypeReference(JvmParameterizedTypeReference reference,
                                                          java.util.Set<JvmTypeParameter> visiting)
Specified by:
doVisitParameterizedTypeReference in interface ITypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>
Overrides:
doVisitParameterizedTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<java.util.Set<JvmTypeParameter>,JvmTypeReference>

doVisitWildcardTypeReference

public JvmTypeReference doVisitWildcardTypeReference(JvmWildcardTypeReference reference,
                                                     java.util.Set<JvmTypeParameter> visiting)
Specified by:
doVisitWildcardTypeReference in interface ITypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>
Overrides:
doVisitWildcardTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<java.util.Set<JvmTypeParameter>,JvmTypeReference>

doVisitGenericArrayTypeReference

public JvmTypeReference doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference reference,
                                                         java.util.Set<JvmTypeParameter> visiting)
Specified by:
doVisitGenericArrayTypeReference in interface ITypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>
Overrides:
doVisitGenericArrayTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<java.util.Set<JvmTypeParameter>,JvmTypeReference>

doVisitAnyTypeReference

public JvmTypeReference doVisitAnyTypeReference(JvmAnyTypeReference reference,
                                                java.util.Set<JvmTypeParameter> visiting)
Specified by:
doVisitAnyTypeReference in interface ITypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>
Overrides:
doVisitAnyTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<java.util.Set<JvmTypeParameter>,JvmTypeReference>

doVisitMultiTypeReference

public JvmTypeReference doVisitMultiTypeReference(JvmMultiTypeReference reference,
                                                  java.util.Set<JvmTypeParameter> visiting)
Specified by:
doVisitMultiTypeReference in interface ITypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>
Overrides:
doVisitMultiTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<java.util.Set<JvmTypeParameter>,JvmTypeReference>

doVisitSynonymTypeReference

public JvmTypeReference doVisitSynonymTypeReference(JvmSynonymTypeReference reference,
                                                    java.util.Set<JvmTypeParameter> visiting)
Specified by:
doVisitSynonymTypeReference in interface ITypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>
Overrides:
doVisitSynonymTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<java.util.Set<JvmTypeParameter>,JvmTypeReference>

doVisitUnknownTypeReference

public JvmTypeReference doVisitUnknownTypeReference(JvmUnknownTypeReference reference,
                                                    java.util.Set<JvmTypeParameter> visiting)
Specified by:
doVisitUnknownTypeReference in interface ITypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>
Overrides:
doVisitUnknownTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<java.util.Set<JvmTypeParameter>,JvmTypeReference>

substitute

public JvmTypeReference substitute(JvmTypeReference original)