summaryrefslogtreecommitdiff
path: root/platform/script-debugger/backend/src/org/jetbrains/debugger/VmBase.java
blob: befe4221e0117ee8f7ab4fe184ac39851e99f67f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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;
  }

  protected abstract EvaluateContext computeEvaluateContext();

  @NotNull
  @Override
  public final DebugEventListener getDebugListener() {
    return debugListener;
  }
}