blob: b2ebd332c6239b5ccfb1736c3e6453d80b1d00ac [file] [log] [blame]
package org.jetbrains.debugger;
import org.jetbrains.annotations.NotNull;
public abstract class VmBase implements Vm {
private EvaluateContext evaluateContext;
private final DebugEventListener debugListener;
protected VmBase(@NotNull DebugEventListener debugListener) {
this.debugListener = debugListener;
}
@NotNull
@Override
public final synchronized EvaluateContext getEvaluateContext() {
if (evaluateContext == null) {
evaluateContext = computeEvaluateContext();
}
return evaluateContext;
}
@NotNull
protected abstract EvaluateContext computeEvaluateContext();
@NotNull
@Override
public final DebugEventListener getDebugListener() {
return debugListener;
}
}