package jetbrains.mps.debugger.java.runtime.evaluation.model;
/*Generated by MPS */
import jetbrains.mps.debugger.java.api.state.JavaUiState;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import java.util.ArrayList;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.mps.openapi.model.SNode;
import org.jetbrains.mps.openapi.module.SModule;
import org.jetbrains.mps.openapi.model.SModel;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations;
import java.util.Map;
import jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes;
/*package*/ abstract class EvaluationContext {
protected JavaUiState myUiState;
public EvaluationContext(JavaUiState state) {
myUiState = state;
}
@NotNull
public List<String> getClassPath() {
return ListSequence.fromList(new ArrayList<String>());
}
@Nullable
public abstract SNode getLocationNode();
@Nullable
public SModule getLocationModule() {
SModel model = getLocationModel();
if (model == null) {
return null;
}
return model.getModule();
}
@Nullable
protected SModel getLocationModel() {
return SNodeOperations.getModel(getLocationNode());
}
public JavaUiState getUiState() {
return myUiState;
}
public void setUiState(JavaUiState uiState) {
myUiState = uiState;
}
@NotNull
public abstract Map<String, VariableDescription> getVariables(_FunctionTypes._return_P1_E0<? extends SNode, ? super String> createClassifierType);
@Nullable
public abstract SNode getStaticContextType(_FunctionTypes._return_P1_E0<? extends SNode, ? super String> createClassifierType);
@Nullable
public abstract SNode getThisClassifierType(_FunctionTypes._return_P1_E0<? extends SNode, ? super String> createClassifierType);
public abstract boolean isVariableVisible(String variableName, SNode variableType);
public abstract boolean isThisTypeValid(SNode thisType);
public abstract boolean isStaticContextTypeValid(SNode staticContextType);
}