|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eclipse.xtext.xbase.scoping.featurecalls.JvmFeatureScopeProvider
public class JvmFeatureScopeProvider
Provides a feature scope for a type, based on the type hierarchy.
It also allows to add additional secondary elements, it sorts
invalid elements out and adds it to the end of the scope hierarchy,
and it allows to apply lower prioritized, sugared versions of the
JvmFeatureDescription
s contained in the provided Scope.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.eclipse.xtext.xbase.scoping.featurecalls.IJvmFeatureScopeProvider |
---|
IJvmFeatureScopeProvider.FeatureScopeDescription |
Constructor Summary | |
---|---|
JvmFeatureScopeProvider()
|
Method Summary | |
---|---|
JvmFeatureScope |
createFeatureScope(IScope parent,
java.util.List<IJvmFeatureScopeProvider.FeatureScopeDescription> featureScopeDescriptions)
Provides the feature scope for a given JvmTypeReference , using the given IJvmFeatureDescriptionProvider . |
protected LazyJvmFeatureScope |
createFeatureScopeForTypeRef(IJvmFeatureScopeProvider.FeatureScopeDescription featureScopeDescription)
Provides the feature scope for a given JvmTypeReference , using the given IJvmFeatureDescriptionProvider . |
protected boolean |
isValidFeature(JvmFeature input)
|
java.lang.Iterable<JvmTypeReference> |
linearizeTypeHierarchy(JvmTypeReference typeRef)
|
void |
setSuperTypeCollector(SuperTypeCollector superTypeCollector)
|
void |
setTypeArgumentContextProvider(TypeArgumentContextProvider typeArgumentContextProvider)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public JvmFeatureScopeProvider()
Method Detail |
---|
public void setTypeArgumentContextProvider(TypeArgumentContextProvider typeArgumentContextProvider)
public void setSuperTypeCollector(SuperTypeCollector superTypeCollector)
public JvmFeatureScope createFeatureScope(IScope parent, java.util.List<IJvmFeatureScopeProvider.FeatureScopeDescription> featureScopeDescriptions)
IJvmFeatureScopeProvider
Provides the feature scope for a given JvmTypeReference
, using the given IJvmFeatureDescriptionProvider
.
It traverses the type hierarchy of the given JvmTypeReference
for each
IJvmFeatureDescriptionProvider
passed to this method subsequent in the order they are provided.
For a sugared scope, you'd typical pass in two IJvmFeatureDescriptionProvider
s the first one will create the primary features,
the second will create sugared elements.
JvmFeatureDescription
s marked as invalid JvmFeatureDescription.isValid()
, will be sorted last (even after sugar). This ensures that
it is shadowed by valid elements and can be filtered out if not needed.
createFeatureScope
in interface IJvmFeatureScopeProvider
protected LazyJvmFeatureScope createFeatureScopeForTypeRef(IJvmFeatureScopeProvider.FeatureScopeDescription featureScopeDescription)
Provides the feature scope for a given JvmTypeReference
, using the given IJvmFeatureDescriptionProvider
.
The default implementation traverses the type hierarchy of the given JvmTypeReference
and asks the
IJvmFeatureDescriptionProvider
to create any number of JvmFeatureDescription
for each JvmFeature
.
In a second traversal the XFeatureCallSugarDescriptionProvider
is asked to add additional sugar for each JvmFeatureDescription
which gets less
priority than all the descriptions from the first traversal (i.e. sugar is contained in parent scopes).
JvmFeatureDescription
s marked as invalid JvmFeatureDescription.isValid()
, will be sorted last (even after sugar). This ensures that
it is shadowed by valid elements and can be filtered out if not needed.
protected boolean isValidFeature(JvmFeature input)
public java.lang.Iterable<JvmTypeReference> linearizeTypeHierarchy(JvmTypeReference typeRef)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |