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

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

public class ActualTypeArgumentCollector
extends AbstractTypeReferencePairWalker

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

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.xtext.xbase.typesystem.util.AbstractTypeReferencePairWalker
AbstractTypeReferencePairWalker.ArrayTypeReferenceTraverser, AbstractTypeReferencePairWalker.ParameterizedTypeReferenceTraverser, AbstractTypeReferencePairWalker.WildcardTypeReferenceTraverser
 
Nested classes/interfaces inherited from class org.eclipse.xtext.common.types.util.AbstractTypeReferenceVisitorWithParameter
AbstractTypeReferenceVisitorWithParameter.InheritanceAware<Parameter,Result>
 
Constructor Summary
ActualTypeArgumentCollector(java.util.List<JvmTypeParameter> parametersToBeMapped, CommonTypeComputationServices services)
           
 
Method Summary
protected  BoundTypeArgument boundByConstraint(JvmTypeReference reference, java.lang.Object origin)
           
protected  BoundTypeArgument boundByInferrence(JvmTypeReference reference)
           
protected  BoundTypeArgument createBoundTypeArgument(JvmTypeReference reference, BoundTypeArgumentSource source, java.lang.Object origin, VarianceInfo declaredVariance, VarianceInfo actualVariance)
           
protected  java.util.List<JvmTypeParameter> getParametersToProcess()
           
 com.google.common.collect.ListMultimap<JvmTypeParameter,BoundTypeArgument> getTypeParameterMapping()
           
 void populateTypeParameterMapping(JvmTypeReference declaredType, JvmTypeReference actualType)
           
 void processPairedReferences(JvmTypeReference declaredType, JvmTypeReference actualType)
           
protected  void processTypeParameter(JvmTypeParameter typeParameter, JvmTypeReference reference)
           
 com.google.common.collect.ListMultimap<JvmTypeParameter,BoundTypeArgument> rawGetTypeParameterMapping()
           
protected  boolean shouldProcess(JvmTypeParameter type)
           
 
Methods inherited from class org.eclipse.xtext.xbase.typesystem.util.AbstractTypeReferencePairWalker
createArrayTypeReferenceTraverser, createParameterizedTypeReferenceTraverser, createTypeParameterSubstitutor, createWildcardTypeReferenceTraverser, doVisitGenericArrayTypeReference, doVisitParameterizedTypeReference, doVisitWildcardTypeReference, findMappedParameter, getActualVariance, getExpectedVariance, getOrigin, getServices, outerVisit, outerVisit
 
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

ActualTypeArgumentCollector

public ActualTypeArgumentCollector(java.util.List<JvmTypeParameter> parametersToBeMapped,
                                   CommonTypeComputationServices services)
Method Detail

populateTypeParameterMapping

public void populateTypeParameterMapping(JvmTypeReference declaredType,
                                         JvmTypeReference actualType)

createBoundTypeArgument

protected BoundTypeArgument createBoundTypeArgument(JvmTypeReference reference,
                                                    BoundTypeArgumentSource source,
                                                    java.lang.Object origin,
                                                    VarianceInfo declaredVariance,
                                                    VarianceInfo actualVariance)

boundByConstraint

protected BoundTypeArgument boundByConstraint(JvmTypeReference reference,
                                              java.lang.Object origin)

boundByInferrence

protected BoundTypeArgument boundByInferrence(JvmTypeReference reference)

processTypeParameter

protected void processTypeParameter(JvmTypeParameter typeParameter,
                                    JvmTypeReference reference)
Overrides:
processTypeParameter in class AbstractTypeReferencePairWalker

rawGetTypeParameterMapping

public com.google.common.collect.ListMultimap<JvmTypeParameter,BoundTypeArgument> rawGetTypeParameterMapping()

getParametersToProcess

protected java.util.List<JvmTypeParameter> getParametersToProcess()

shouldProcess

protected boolean shouldProcess(JvmTypeParameter type)
Overrides:
shouldProcess in class AbstractTypeReferencePairWalker

processPairedReferences

public void processPairedReferences(JvmTypeReference declaredType,
                                    JvmTypeReference actualType)
Overrides:
processPairedReferences in class AbstractTypeReferencePairWalker

getTypeParameterMapping

public com.google.common.collect.ListMultimap<JvmTypeParameter,BoundTypeArgument> getTypeParameterMapping()