From be4f78978faba3d3ceb88df02a7f93a2e09ff1e0 Mon Sep 17 00:00:00 2001 From: Kenji Hosokawa Date: Tue, 3 Aug 2021 18:42:39 +0900 Subject: Initial commit Bug-AGL: SPEC-4033 Signed-off-by: Kenji Hosokawa --- .../internal/RBAModelMemberFieldScopes.xtend | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberFieldScopes.xtend (limited to 'rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberFieldScopes.xtend') diff --git a/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberFieldScopes.xtend b/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberFieldScopes.xtend new file mode 100644 index 0000000..a2c9b6f --- /dev/null +++ b/rba.tool.editor/src/rba/tool/editor/scoping/internal/RBAModelMemberFieldScopes.xtend @@ -0,0 +1,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; + } + } +} -- cgit 1.2.3-korg