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

java.lang.Object
  extended by org.eclipse.xtext.xbase.typesystem.internal.AbstractLinkingCandidate<LinkingCandidate>
      extended by org.eclipse.xtext.xbase.typesystem.internal.AbstractLinkingCandidateWithTypeParameter<IFeatureLinkingCandidate>
          extended by org.eclipse.xtext.xbase.typesystem.internal.FeatureLinkingCandidate
All Implemented Interfaces:
java.lang.Comparable<IFeatureLinkingCandidate>, IFeatureLinkingCandidate, ILinkingCandidate<IFeatureLinkingCandidate>

public class FeatureLinkingCandidate
extends AbstractLinkingCandidateWithTypeParameter<IFeatureLinkingCandidate>
implements IFeatureLinkingCandidate

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

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.xtext.xbase.typesystem.internal.AbstractLinkingCandidateWithTypeParameter
AbstractLinkingCandidateWithTypeParameter.LazyExpectation
 
Constructor Summary
FeatureLinkingCandidate(XAbstractFeatureCall featureCall, IEObjectDescription description, AbstractTypeComputationState state)
           
 
Method Summary
protected  int compareByArityWith(IFeatureLinkingCandidate right)
           
 int compareTo(IFeatureLinkingCandidate right)
           
protected  java.util.Map<JvmTypeParameter,JvmTypeReference> getDeclaratorParameterMapping()
           
protected  JvmTypeReference getDeclaredType(JvmIdentifiableElement feature)
           
 XAbstractFeatureCall getFeatureCall()
           
protected  java.util.Map<JvmTypeParameter,JvmTypeReference> getFeatureTypeParameterMapping()
           
protected  JvmTypeReference getReceiverType()
           
protected  java.util.List<XExpression> getSyntacticArguments()
           
protected  java.util.List<JvmTypeReference> getTypeArguments()
           
 boolean isExtension()
           
 boolean isStatic()
           
protected  boolean isStaticOrExtension(IFeatureLinkingCandidate candidate)
           
protected  StackedResolvedTypes resolveArgumentType(XExpression argument, JvmTypeReference declaredType, AbstractTypeComputationState argumentState)
           
 
Methods inherited from class org.eclipse.xtext.xbase.typesystem.internal.AbstractLinkingCandidateWithTypeParameter
accept, apply, computeArgumentTypes, getDeclaredTypeParameters, resolveAgainstActualType
 
Methods inherited from class org.eclipse.xtext.xbase.typesystem.internal.AbstractLinkingCandidate
acceptActualType, asWrapperType, compareByArity, deferredBindTypeArguments, getArguments, getArityMismatch, getArityMismatch, getDeclaredParameters, getDescription, getExpression, getFeature, getReceiver, getState, getTypeArityMismatch, getTypeParameter
 
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.xbase.typesystem.computation.ILinkingCandidate
apply, getArguments, getArityMismatch, getDeclaredParameters, getDeclaredTypeParameters, getFeature, getTypeArityMismatch
 

Constructor Detail

FeatureLinkingCandidate

public FeatureLinkingCandidate(XAbstractFeatureCall featureCall,
                               IEObjectDescription description,
                               AbstractTypeComputationState state)
Method Detail

getReceiverType

protected JvmTypeReference getReceiverType()

compareTo

public int compareTo(IFeatureLinkingCandidate right)
Specified by:
compareTo in interface java.lang.Comparable<IFeatureLinkingCandidate>
Overrides:
compareTo in class AbstractLinkingCandidate<IFeatureLinkingCandidate>

compareByArityWith

protected int compareByArityWith(IFeatureLinkingCandidate right)
Overrides:
compareByArityWith in class AbstractLinkingCandidate<IFeatureLinkingCandidate>

isStaticOrExtension

protected boolean isStaticOrExtension(IFeatureLinkingCandidate candidate)

isExtension

public boolean isExtension()
Specified by:
isExtension in interface IFeatureLinkingCandidate

isStatic

public boolean isStatic()
Specified by:
isStatic in interface IFeatureLinkingCandidate

getSyntacticArguments

protected java.util.List<XExpression> getSyntacticArguments()
Specified by:
getSyntacticArguments in class AbstractLinkingCandidate<IFeatureLinkingCandidate>

getFeatureCall

public XAbstractFeatureCall getFeatureCall()
Specified by:
getFeatureCall in interface IFeatureLinkingCandidate

getTypeArguments

protected java.util.List<JvmTypeReference> getTypeArguments()
Specified by:
getTypeArguments in class AbstractLinkingCandidate<IFeatureLinkingCandidate>

resolveArgumentType

protected StackedResolvedTypes resolveArgumentType(XExpression argument,
                                                   JvmTypeReference declaredType,
                                                   AbstractTypeComputationState argumentState)
Overrides:
resolveArgumentType in class AbstractLinkingCandidate<IFeatureLinkingCandidate>

getDeclaratorParameterMapping

protected java.util.Map<JvmTypeParameter,JvmTypeReference> getDeclaratorParameterMapping()
Overrides:
getDeclaratorParameterMapping in class AbstractLinkingCandidate<IFeatureLinkingCandidate>

getFeatureTypeParameterMapping

protected java.util.Map<JvmTypeParameter,JvmTypeReference> getFeatureTypeParameterMapping()
Overrides:
getFeatureTypeParameterMapping in class AbstractLinkingCandidateWithTypeParameter<IFeatureLinkingCandidate>

getDeclaredType

protected JvmTypeReference getDeclaredType(JvmIdentifiableElement feature)
Overrides:
getDeclaredType in class AbstractLinkingCandidate<IFeatureLinkingCandidate>