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

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<Reference,java.lang.Void>
              extended by org.eclipse.xtext.xbase.typesystem.util.AbstractTypeReferenceTraverser<JvmTypeReference>
                  extended by org.eclipse.xtext.xbase.typesystem.util.AbstractTypeReferencePairWalker
All Implemented Interfaces:
ITypeReferenceVisitorWithParameter<JvmTypeReference,java.lang.Void>, XtypeReferenceVisitorWithParameter<JvmTypeReference,java.lang.Void>
Direct Known Subclasses:
ActualTypeArgumentCollector

public abstract class AbstractTypeReferencePairWalker
extends AbstractTypeReferenceTraverser<JvmTypeReference>

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

Nested Class Summary
protected  class AbstractTypeReferencePairWalker.ArrayTypeReferenceTraverser
           
protected  class AbstractTypeReferencePairWalker.ParameterizedTypeReferenceTraverser
           
protected  class AbstractTypeReferencePairWalker.WildcardTypeReferenceTraverser
           
 
Nested classes/interfaces inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter
AbstractTypeReferenceVisitorWithParameter.InheritanceAware<Parameter,Result>
 
Constructor Summary
protected AbstractTypeReferencePairWalker(CommonTypeComputationServices services)
           
 
Method Summary
protected  AbstractTypeReferencePairWalker.ArrayTypeReferenceTraverser createArrayTypeReferenceTraverser()
           
protected  AbstractTypeReferencePairWalker.ParameterizedTypeReferenceTraverser createParameterizedTypeReferenceTraverser()
           
protected  TypeParameterSubstitutor createTypeParameterSubstitutor(java.util.Map<JvmTypeParameter,JvmTypeReference> mapping)
           
protected  AbstractTypeReferencePairWalker.WildcardTypeReferenceTraverser createWildcardTypeReferenceTraverser()
           
 java.lang.Void doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference declaredReference, JvmTypeReference param)
           
 java.lang.Void doVisitParameterizedTypeReference(JvmParameterizedTypeReference declaredReference, JvmTypeReference param)
           
 java.lang.Void doVisitWildcardTypeReference(JvmWildcardTypeReference declaredReference, JvmTypeReference param)
           
protected  JvmTypeParameter findMappedParameter(JvmTypeParameter parameter, java.util.Map<JvmTypeParameter,JvmTypeReference> mapping, java.util.Collection<JvmTypeParameter> visited)
           
protected  VarianceInfo getActualVariance()
           
protected  VarianceInfo getExpectedVariance()
           
protected  java.lang.Object getOrigin()
           
protected  CommonTypeComputationServices getServices()
           
protected  java.lang.Void outerVisit(JvmTypeReference reference, JvmTypeReference parameter)
           
protected  java.lang.Void outerVisit(JvmTypeReference reference, JvmTypeReference parameter, java.lang.Object origin, VarianceInfo expectedVariance, VarianceInfo actualVariance)
           
 void processPairedReferences(JvmTypeReference declaredType, JvmTypeReference actualType)
           
protected  void processTypeParameter(JvmTypeParameter typeParameter, JvmTypeReference reference)
           
protected  boolean shouldProcess(JvmTypeParameter type)
           
 
Methods inherited from class org.eclipse.xtext.xbase.typesystem.util.AbstractTypeReferenceTraverser
doVisitCompoundTypeReference, doVisitTypeReference, handleNullReference
 
Methods inherited from class org.eclipse.xtext.xtype.util.AbstractXtypeReferenceVisitorWithParameter
doVisitComputedTypeReference, doVisitFunctionTypeReference
 
Methods inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter.InheritanceAware
doVisitAnyTypeReference, doVisitMultiTypeReference, doVisitSynonymTypeReference, doVisitUnknownTypeReference
 
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
doVisitAnyTypeReference, doVisitDelegateTypeReference, doVisitMultiTypeReference, doVisitSpecializedTypeReference, doVisitSynonymTypeReference, doVisitUnknownTypeReference, visit
 

Constructor Detail

AbstractTypeReferencePairWalker

protected AbstractTypeReferencePairWalker(CommonTypeComputationServices services)
Method Detail

processTypeParameter

protected void processTypeParameter(JvmTypeParameter typeParameter,
                                    JvmTypeReference reference)

shouldProcess

protected boolean shouldProcess(JvmTypeParameter type)

createArrayTypeReferenceTraverser

protected AbstractTypeReferencePairWalker.ArrayTypeReferenceTraverser createArrayTypeReferenceTraverser()

createWildcardTypeReferenceTraverser

protected AbstractTypeReferencePairWalker.WildcardTypeReferenceTraverser createWildcardTypeReferenceTraverser()

createParameterizedTypeReferenceTraverser

protected AbstractTypeReferencePairWalker.ParameterizedTypeReferenceTraverser createParameterizedTypeReferenceTraverser()

doVisitParameterizedTypeReference

public java.lang.Void doVisitParameterizedTypeReference(JvmParameterizedTypeReference declaredReference,
                                                        JvmTypeReference param)
Specified by:
doVisitParameterizedTypeReference in interface ITypeReferenceVisitorWithParameter<JvmTypeReference,java.lang.Void>
Overrides:
doVisitParameterizedTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<JvmTypeReference,java.lang.Void>

doVisitWildcardTypeReference

public java.lang.Void doVisitWildcardTypeReference(JvmWildcardTypeReference declaredReference,
                                                   JvmTypeReference param)
Specified by:
doVisitWildcardTypeReference in interface ITypeReferenceVisitorWithParameter<JvmTypeReference,java.lang.Void>
Overrides:
doVisitWildcardTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<JvmTypeReference,java.lang.Void>

doVisitGenericArrayTypeReference

public java.lang.Void doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference declaredReference,
                                                       JvmTypeReference param)
Specified by:
doVisitGenericArrayTypeReference in interface ITypeReferenceVisitorWithParameter<JvmTypeReference,java.lang.Void>
Overrides:
doVisitGenericArrayTypeReference in class AbstractTypeReferenceVisitorWithParameter.InheritanceAware<JvmTypeReference,java.lang.Void>

outerVisit

protected java.lang.Void outerVisit(JvmTypeReference reference,
                                    JvmTypeReference parameter,
                                    java.lang.Object origin,
                                    VarianceInfo expectedVariance,
                                    VarianceInfo actualVariance)

outerVisit

protected java.lang.Void outerVisit(JvmTypeReference reference,
                                    JvmTypeReference parameter)

processPairedReferences

public void processPairedReferences(JvmTypeReference declaredType,
                                    JvmTypeReference actualType)

getServices

protected CommonTypeComputationServices getServices()

getActualVariance

protected VarianceInfo getActualVariance()

getExpectedVariance

protected VarianceInfo getExpectedVariance()

getOrigin

protected java.lang.Object getOrigin()

createTypeParameterSubstitutor

protected TypeParameterSubstitutor createTypeParameterSubstitutor(java.util.Map<JvmTypeParameter,JvmTypeReference> mapping)

findMappedParameter

protected JvmTypeParameter findMappedParameter(JvmTypeParameter parameter,
                                               java.util.Map<JvmTypeParameter,JvmTypeReference> mapping,
                                               java.util.Collection<JvmTypeParameter> visited)