blob: a2c9b6f9448ccdf74a5e10f3a39ab6f956760a09 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package rba.tool.editor.scoping.internal
import org.eclipse.emf.ecore.EObject
import org.eclipse.xtext.EcoreUtil2
import org.eclipse.xtext.scoping.IScope
import org.eclipse.xtext.scoping.Scopes
import rba.core.AbstractProperty
import rba.core.Content
import rba.core.ContentState
import rba.core.Scene
import rba.core.State
import rba.tool.editor.scoping.IExpressionScope
class RBAModelMemberFieldScopes implements IMemberFeatureScopes {
override createFeatureScope(EObject model) {
createFeatureScope(model, IExpressionScope.Anchor.UNKNOWN, IScope.NULLSCOPE);
}
override createFeatureScope(EObject model, IExpressionScope.Anchor anchor, IScope outer) {
if (model instanceof Scene) {
return Scopes.scopeFor(EcoreUtil2.getAllContentsOfType(model, AbstractProperty), outer);
} else if (model instanceof Content) {
return Scopes.scopeFor(EcoreUtil2.getAllContentsOfType(model, ContentState), outer);
} else if (model instanceof State) {
return Scopes.scopeFor(EcoreUtil2.getAllContentsOfType(model, State), outer);
} else {
return outer;
}
}
}
|