|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.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
JvmFeatureDescriptions 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 IJvmFeatureDescriptionProviders the first one will create the primary features,
the second will create sugared elements.
JvmFeatureDescriptions 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 IJvmFeatureScopeProviderfeatureScopeDescriptions - the description of the feature scopes whose contents should be provided.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).
JvmFeatureDescriptions 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 | ||||||||