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;
}
}