package jetbrains.mps.lang.scopes.runtime; /*Generated by MPS */ import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.language.SAbstractConcept; import jetbrains.mps.scope.Scope; import jetbrains.mps.scope.EmptyScope; public class LazyParentScope extends DelegatingScope { private final SNode node; private final SAbstractConcept kind; private Scope scope; private boolean isCalculated = false; public LazyParentScope(SNode node, SAbstractConcept kind) { this.node = node; this.kind = kind; } @Override protected Scope getScope() { if (!(isCalculated)) { scope = ScopeUtils.parentScope(node, kind); // todo: think about this case... if (scope == null) { scope = new EmptyScope(); } isCalculated = true; } return scope; } }