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

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
                  extended by org.eclipse.xtext.xbase.typesystem.util.TypeParameterByConstraintSubstitutor
All Implemented Interfaces:
ITypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>, XtypeReferenceVisitorWithParameter<java.util.Set<JvmTypeParameter>,JvmTypeReference>

public class TypeParameterByConstraintSubstitutor
extends TypeParameterSubstitutor

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
TypeParameterByConstraintSubstitutor(java.util.Map<JvmTypeParameter,JvmTypeReference> typeParameterMapping, CommonTypeComputationServices services)
           
 
Method Summary
 JvmTypeReference doVisitParameterizedTypeReference(JvmParameterizedTypeReference reference, java.util.Set<JvmTypeParameter> visiting)
           
 JvmTypeReference doVisitWildcardTypeReference(JvmWildcardTypeReference reference, java.util.Set<JvmTypeParameter> visiting)
           
protected  JvmTypeReference getDeclaredUpperBound(JvmType type, int parameterIndex, java.util.Set<JvmTypeParameter> visiting)
           
protected  JvmTypeReference getUnmappedSubstitute(JvmParameterizedTypeReference reference, JvmTypeParameter type, java.util.Set<JvmTypeParameter> visiting)
           
 JvmTypeReference substitute(JvmTypeReference original)
           
 
Methods inherited from class org.eclipse.xtext.xbase.typesystem.util.TypeParameterSubstitutor
doVisitAnyTypeReference, doVisitFunctionTypeReference, doVisitGenericArrayTypeReference, doVisitMultiTypeReference, doVisitSynonymTypeReference, doVisitUnknownTypeReference, enhanceMapping, getServices, getTypeParameterMapping, handleNullReference
 
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

TypeParameterByConstraintSubstitutor

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

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 TypeParameterSubstitutor

getUnmappedSubstitute

protected JvmTypeReference getUnmappedSubstitute(JvmParameterizedTypeReference reference,
                                                 JvmTypeParameter type,
                                                 java.util.Set<JvmTypeParameter> visiting)

getDeclaredUpperBound

protected JvmTypeReference getDeclaredUpperBound(JvmType type,
                                                 int parameterIndex,
                                                 java.util.Set<JvmTypeParameter> visiting)

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 TypeParameterSubstitutor

substitute

public JvmTypeReference substitute(JvmTypeReference original)
Overrides:
substitute in class TypeParameterSubstitutor