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

java.lang.Object
  extended by org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitor<Result>
      extended by org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitor.InheritanceAware<JvmTypeReference>
          extended by org.eclipse.xtext.xbase.typesystem.internal.TypeParameterSubstitutor
All Implemented Interfaces:
ITypeReferenceVisitor<JvmTypeReference>

public class TypeParameterSubstitutor
extends AbstractTypeReferenceVisitor.InheritanceAware<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.AbstractTypeReferenceVisitor
AbstractTypeReferenceVisitor.InheritanceAware<Result>
 
Constructor Summary
TypeParameterSubstitutor(java.util.Map<JvmTypeParameter,JvmTypeReference> typeParameterMapping, TypesFactory typesFactory)
           
 
Method Summary
 JvmTypeReference doVisitAnyTypeReference(JvmAnyTypeReference reference)
           
 JvmTypeReference doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference reference)
           
 JvmTypeReference doVisitMultiTypeReference(JvmMultiTypeReference reference)
           
 JvmTypeReference doVisitParameterizedTypeReference(JvmParameterizedTypeReference reference)
           
 JvmTypeReference doVisitSynonymTypeReference(JvmSynonymTypeReference reference)
           
 JvmTypeReference doVisitUnknownTypeReference(JvmUnknownTypeReference reference)
           
 JvmTypeReference doVisitWildcardTypeReference(JvmWildcardTypeReference reference)
           
protected  JvmTypeReference handleNullReference()
           
 JvmTypeReference substitute(JvmTypeReference original)
           
 
Methods inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitor.InheritanceAware
doVisitCompoundTypeReference, doVisitTypeReference
 
Methods inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitor
doVisitDelegateTypeReference, doVisitSpecializedTypeReference, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TypeParameterSubstitutor

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

handleNullReference

protected JvmTypeReference handleNullReference()
Overrides:
handleNullReference in class AbstractTypeReferenceVisitor<JvmTypeReference>

doVisitParameterizedTypeReference

public JvmTypeReference doVisitParameterizedTypeReference(JvmParameterizedTypeReference reference)
Specified by:
doVisitParameterizedTypeReference in interface ITypeReferenceVisitor<JvmTypeReference>
Overrides:
doVisitParameterizedTypeReference in class AbstractTypeReferenceVisitor.InheritanceAware<JvmTypeReference>

doVisitWildcardTypeReference

public JvmTypeReference doVisitWildcardTypeReference(JvmWildcardTypeReference reference)
Specified by:
doVisitWildcardTypeReference in interface ITypeReferenceVisitor<JvmTypeReference>
Overrides:
doVisitWildcardTypeReference in class AbstractTypeReferenceVisitor.InheritanceAware<JvmTypeReference>

doVisitGenericArrayTypeReference

public JvmTypeReference doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference reference)
Specified by:
doVisitGenericArrayTypeReference in interface ITypeReferenceVisitor<JvmTypeReference>
Overrides:
doVisitGenericArrayTypeReference in class AbstractTypeReferenceVisitor.InheritanceAware<JvmTypeReference>

doVisitAnyTypeReference

public JvmTypeReference doVisitAnyTypeReference(JvmAnyTypeReference reference)
Specified by:
doVisitAnyTypeReference in interface ITypeReferenceVisitor<JvmTypeReference>
Overrides:
doVisitAnyTypeReference in class AbstractTypeReferenceVisitor.InheritanceAware<JvmTypeReference>

doVisitMultiTypeReference

public JvmTypeReference doVisitMultiTypeReference(JvmMultiTypeReference reference)
Specified by:
doVisitMultiTypeReference in interface ITypeReferenceVisitor<JvmTypeReference>
Overrides:
doVisitMultiTypeReference in class AbstractTypeReferenceVisitor.InheritanceAware<JvmTypeReference>

doVisitSynonymTypeReference

public JvmTypeReference doVisitSynonymTypeReference(JvmSynonymTypeReference reference)
Specified by:
doVisitSynonymTypeReference in interface ITypeReferenceVisitor<JvmTypeReference>
Overrides:
doVisitSynonymTypeReference in class AbstractTypeReferenceVisitor.InheritanceAware<JvmTypeReference>

doVisitUnknownTypeReference

public JvmTypeReference doVisitUnknownTypeReference(JvmUnknownTypeReference reference)
Specified by:
doVisitUnknownTypeReference in interface ITypeReferenceVisitor<JvmTypeReference>
Overrides:
doVisitUnknownTypeReference in class AbstractTypeReferenceVisitor.InheritanceAware<JvmTypeReference>

substitute

public JvmTypeReference substitute(JvmTypeReference original)