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