org.eclipse.xtext.xbase.scoping.featurecalls
Class DefaultJvmFeatureDescriptionProvider

java.lang.Object
  extended by org.eclipse.xtext.xbase.scoping.featurecalls.DefaultJvmFeatureDescriptionProvider
All Implemented Interfaces:
IFeaturesForTypeProvider, IJvmFeatureDescriptionProvider
Direct Known Subclasses:
DefaultConstructorDescriptionProvider, XAssignmentDescriptionProvider, XAssignmentSugarDescriptionProvider, XFeatureCallSugarDescriptionProvider

public class DefaultJvmFeatureDescriptionProvider
extends java.lang.Object
implements IJvmFeatureDescriptionProvider, IFeaturesForTypeProvider

Author:
Sven Efftinge - Initial contribution and API, Sebastian Zarnekow

Nested Class Summary
protected static class DefaultJvmFeatureDescriptionProvider.ShadowingAwareAcceptor
           
 
Field Summary
protected  JvmDeclaredType contextType
           
protected  IFeaturesForTypeProvider featuresForTypeProvider
           
protected  XExpression implicitArgument
           
protected  XExpression implicitReceiver
           
protected  boolean preferStatics
           
protected  int priority
           
protected  JvmFeatureSignatureProvider signatureProvider
           
protected  VisibilityService visibilityService
           
 
Constructor Summary
DefaultJvmFeatureDescriptionProvider()
           
 
Method Summary
 void addFeatureDescriptions(JvmFeature feature, ITypeArgumentContext rawTypeContext, IAcceptor<JvmFeatureDescription> acceptor)
           
protected  JvmFeatureDescription createJvmFeatureDescription(JvmFeature jvmFeature, ITypeArgumentContext rawTypeContext, com.google.inject.Provider<java.lang.String> shadowingStringProvider, boolean isValid, boolean isValidStaticState)
           
protected  JvmFeatureDescription createJvmFeatureDescription(QualifiedName name, JvmFeature jvmFeature, ITypeArgumentContext rawTypeContext, com.google.inject.Provider<java.lang.String> shadowingStringProvider, boolean isVisible, boolean isValidStaticState)
           
protected  JvmFeatureDescription createJvmFeatureDescription(QualifiedName name, JvmFeature jvmFeature, ITypeArgumentContext rawTypeContext, java.lang.String shadowingString, boolean isValid, boolean isValidStaticState)
           
protected  void doCollectDescriptions(IFeaturesForTypeProvider featureProvider, JvmTypeReference typeReference, ITypeArgumentContext context, java.lang.Iterable<JvmTypeReference> hierarchy, IAcceptor<JvmFeatureDescription> acceptor)
           
protected  void doCollectDescriptions(java.lang.String name, IFeaturesForTypeProvider featureProvider, JvmTypeReference typeReference, ITypeArgumentContext rawTypeContext, java.lang.Iterable<JvmTypeReference> hierarchy, IAcceptor<JvmFeatureDescription> acceptor)
           
 java.lang.Iterable<IEObjectDescription> getAllDescriptions(IFeaturesForTypeProvider featureProvider, JvmTypeReference typeReference, com.google.common.base.Function<? super JvmFeatureDescription,? extends ITypeArgumentContext> genericContextFactory, ITypeArgumentContext context, java.lang.Iterable<JvmTypeReference> hierarchy)
           
 java.lang.Iterable<JvmFeature> getAllFeatures(JvmTypeReference typeReference, java.lang.Iterable<JvmTypeReference> hierarchy)
           
 java.lang.Iterable<IEObjectDescription> getDescriptionsByName(java.lang.String name, IFeaturesForTypeProvider featureProvider, JvmTypeReference typeReference, com.google.common.base.Function<? super JvmFeatureDescription,? extends ITypeArgumentContext> genericContextFactory, ITypeArgumentContext rawTypeContext, java.lang.Iterable<JvmTypeReference> hierarchy)
           
 java.lang.Iterable<JvmFeature> getFeaturesByName(java.lang.String name, JvmTypeReference declarator, java.lang.Iterable<JvmTypeReference> hierarchy)
           
 XExpression getImplicitArgument()
           
 XExpression getImplicitReceiver()
           
protected  int getNumberOfIrrelevantArguments()
           
 int getPriority()
           
protected  com.google.inject.Provider<java.lang.String> getSignature(JvmFeature feature, ITypeArgumentContext context)
           
 boolean isExtensionProvider()
           
protected  boolean isValidStaticState(JvmFeature feature)
           
protected  boolean isVisible(JvmFeature feature)
           
 void setContextType(JvmDeclaredType contextType)
           
 void setFeaturesForTypeProvider(IFeaturesForTypeProvider featuresForTypeProvider)
           
 void setImplicitArgument(XExpression implicitArgument)
           
 void setImplicitReceiver(XExpression implicitReceiver)
           
 void setPreferStatics(boolean preferStatics)
           
 void setPriority(int priority)
           
 void setVisibilityService(VisibilityService visibilityService)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

visibilityService

@Inject
protected VisibilityService visibilityService

featuresForTypeProvider

@Inject
protected IFeaturesForTypeProvider featuresForTypeProvider

signatureProvider

@Inject
protected JvmFeatureSignatureProvider signatureProvider

contextType

protected JvmDeclaredType contextType

implicitReceiver

protected XExpression implicitReceiver

implicitArgument

protected XExpression implicitArgument

priority

protected int priority

preferStatics

protected boolean preferStatics
Constructor Detail

DefaultJvmFeatureDescriptionProvider

public DefaultJvmFeatureDescriptionProvider()
Method Detail

setVisibilityService

public void setVisibilityService(VisibilityService visibilityService)

getDescriptionsByName

public java.lang.Iterable<IEObjectDescription> getDescriptionsByName(java.lang.String name,
                                                                     IFeaturesForTypeProvider featureProvider,
                                                                     JvmTypeReference typeReference,
                                                                     com.google.common.base.Function<? super JvmFeatureDescription,? extends ITypeArgumentContext> genericContextFactory,
                                                                     ITypeArgumentContext rawTypeContext,
                                                                     java.lang.Iterable<JvmTypeReference> hierarchy)
Specified by:
getDescriptionsByName in interface IJvmFeatureDescriptionProvider

getAllDescriptions

public java.lang.Iterable<IEObjectDescription> getAllDescriptions(IFeaturesForTypeProvider featureProvider,
                                                                  JvmTypeReference typeReference,
                                                                  com.google.common.base.Function<? super JvmFeatureDescription,? extends ITypeArgumentContext> genericContextFactory,
                                                                  ITypeArgumentContext context,
                                                                  java.lang.Iterable<JvmTypeReference> hierarchy)
Specified by:
getAllDescriptions in interface IJvmFeatureDescriptionProvider

doCollectDescriptions

protected void doCollectDescriptions(java.lang.String name,
                                     IFeaturesForTypeProvider featureProvider,
                                     JvmTypeReference typeReference,
                                     ITypeArgumentContext rawTypeContext,
                                     java.lang.Iterable<JvmTypeReference> hierarchy,
                                     IAcceptor<JvmFeatureDescription> acceptor)

doCollectDescriptions

protected void doCollectDescriptions(IFeaturesForTypeProvider featureProvider,
                                     JvmTypeReference typeReference,
                                     ITypeArgumentContext context,
                                     java.lang.Iterable<JvmTypeReference> hierarchy,
                                     IAcceptor<JvmFeatureDescription> acceptor)

getFeaturesByName

public java.lang.Iterable<JvmFeature> getFeaturesByName(java.lang.String name,
                                                        JvmTypeReference declarator,
                                                        java.lang.Iterable<JvmTypeReference> hierarchy)
Specified by:
getFeaturesByName in interface IFeaturesForTypeProvider

getAllFeatures

public java.lang.Iterable<JvmFeature> getAllFeatures(JvmTypeReference typeReference,
                                                     java.lang.Iterable<JvmTypeReference> hierarchy)
Specified by:
getAllFeatures in interface IFeaturesForTypeProvider

setFeaturesForTypeProvider

public void setFeaturesForTypeProvider(IFeaturesForTypeProvider featuresForTypeProvider)

setPreferStatics

public void setPreferStatics(boolean preferStatics)

setPriority

public void setPriority(int priority)
Specified by:
setPriority in interface IJvmFeatureDescriptionProvider

getPriority

public int getPriority()
Specified by:
getPriority in interface IJvmFeatureDescriptionProvider

setContextType

public void setContextType(JvmDeclaredType contextType)

setImplicitReceiver

public void setImplicitReceiver(XExpression implicitReceiver)

getImplicitReceiver

public XExpression getImplicitReceiver()

setImplicitArgument

public void setImplicitArgument(XExpression implicitArgument)

getImplicitArgument

public XExpression getImplicitArgument()

createJvmFeatureDescription

protected JvmFeatureDescription createJvmFeatureDescription(QualifiedName name,
                                                            JvmFeature jvmFeature,
                                                            ITypeArgumentContext rawTypeContext,
                                                            java.lang.String shadowingString,
                                                            boolean isValid,
                                                            boolean isValidStaticState)

createJvmFeatureDescription

protected JvmFeatureDescription createJvmFeatureDescription(QualifiedName name,
                                                            JvmFeature jvmFeature,
                                                            ITypeArgumentContext rawTypeContext,
                                                            com.google.inject.Provider<java.lang.String> shadowingStringProvider,
                                                            boolean isVisible,
                                                            boolean isValidStaticState)

getNumberOfIrrelevantArguments

protected int getNumberOfIrrelevantArguments()

isExtensionProvider

public boolean isExtensionProvider()
Specified by:
isExtensionProvider in interface IFeaturesForTypeProvider

createJvmFeatureDescription

protected JvmFeatureDescription createJvmFeatureDescription(JvmFeature jvmFeature,
                                                            ITypeArgumentContext rawTypeContext,
                                                            com.google.inject.Provider<java.lang.String> shadowingStringProvider,
                                                            boolean isValid,
                                                            boolean isValidStaticState)

addFeatureDescriptions

public void addFeatureDescriptions(JvmFeature feature,
                                   ITypeArgumentContext rawTypeContext,
                                   IAcceptor<JvmFeatureDescription> acceptor)

getSignature

protected com.google.inject.Provider<java.lang.String> getSignature(JvmFeature feature,
                                                                    ITypeArgumentContext context)

isVisible

protected boolean isVisible(JvmFeature feature)

isValidStaticState

protected boolean isValidStaticState(JvmFeature feature)

toString

public java.lang.String toString()
Specified by:
toString in interface IFeaturesForTypeProvider
Specified by:
toString in interface IJvmFeatureDescriptionProvider
Overrides:
toString in class java.lang.Object