package jetbrains.mps.debugger.java.api.evaluation; /*Generated by MPS */ import jetbrains.mps.debugger.java.api.state.JavaUiState; import jetbrains.mps.debugger.java.api.evaluation.proxies.IObjectValueProxy; import com.sun.jdi.ObjectReference; import jetbrains.mps.debugger.java.api.evaluation.proxies.MirrorUtil; import com.sun.jdi.ThreadReference; import com.sun.jdi.StackFrame; import com.sun.jdi.VirtualMachine; import org.jetbrains.annotations.Nullable; import jetbrains.mps.debugger.java.api.evaluation.proxies.IValueProxy; public abstract class Evaluator { private JavaUiState myUiState; private IObjectValueProxy myThisObject; public Evaluator(JavaUiState uiState) { myUiState = uiState; ObjectReference objectReference = uiState.getThisObject(); if (objectReference != null) { myThisObject = (IObjectValueProxy) MirrorUtil.getInstance().getValueProxy(objectReference); } } protected IObjectValueProxy getThisObject() { return myThisObject; } public ThreadReference getThreadReference() { return myUiState.getThread().getThread(); } public StackFrame getStackFrame() { return myUiState.getStackFrame().getStackFrame(); } public VirtualMachine getVM() { return myUiState.getThread().getThread().virtualMachine(); } @Nullable protected String getThisFQName() { return myUiState.getStackFrame().getLocation().getUnitName(); } public abstract IValueProxy evaluate() throws EvaluationException; }