From f7dde93e0f8f3b6f1530e6dee1021fd4cbc22625 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Mon, 26 Jan 2015 14:43:15 +0100 Subject: [PATCH] prepare to implement firefox evaluate --- .../org/jetbrains/debugger/BreakpointManager.java | 9 +++++++++ .../jetbrains/debugger/BreakpointManagerBase.java | 6 ++++++ .../backend/src/org/jetbrains/debugger/Vm.java | 13 ++----------- .../backend/src/org/jetbrains/debugger/VmBase.java | 9 ++++++--- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManager.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManager.java index ed8316bc4b53..248481b53e9b 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManager.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManager.java @@ -43,6 +43,15 @@ public interface BreakpointManager { @NotNull Promise flush(@NotNull Breakpoint breakpoint); + /** + * Asynchronously enables or disables all breakpoints on remote. 'Enabled' means that + * breakpoints behave as normal, 'disabled' means that VM doesn't stop on breakpoints. + * It doesn't update individual properties of {@link Breakpoint}s. Method call + * with a null value and not null callback simply returns current value. + */ + @NotNull + Promise enableBreakpoints(boolean enabled); + interface BreakpointListener extends EventListener { void resolved(@NotNull Breakpoint breakpoint); diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManagerBase.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManagerBase.java index 1a7ec01c3d38..611d831d618c 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManagerBase.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/BreakpointManagerBase.java @@ -152,4 +152,10 @@ public abstract class BreakpointManagerBase> impleme public Promise flush(@NotNull Breakpoint breakpoint) { return ((T)breakpoint).flush(this); } + + @NotNull + @Override + public Promise enableBreakpoints(boolean enabled) { + return Promise.reject("Unsupported"); + } } \ No newline at end of file diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/Vm.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/Vm.java index 0215a1e61b26..2b2a2abb4b81 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/Vm.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/Vm.java @@ -1,6 +1,7 @@ package org.jetbrains.debugger; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.concurrency.Promise; public interface Vm { @@ -23,23 +24,13 @@ public interface Vm { @NotNull SuspendContextManager getSuspendContextManager(); - /** - * Asynchronously enables or disables all breakpoints on remote. 'Enabled' means that - * breakpoints behave as normal, 'disabled' means that VM doesn't stop on breakpoints. - * It doesn't update individual properties of {@link Breakpoint}s. Method call - * with a null value and not null callback simply returns current value. - * @param enabled new value to set or null - */ - @NotNull - Promise enableBreakpoints(boolean enabled); - /** * Controls whether VM stops on exceptions */ @NotNull Promise setBreakOnException(@NotNull ExceptionCatchMode catchMode); - @NotNull + @Nullable("if global evaluate not supported") EvaluateContext getEvaluateContext(); @NotNull diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/VmBase.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/VmBase.java index bfd74bf6253c..9686430adb6e 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/VmBase.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/VmBase.java @@ -1,6 +1,7 @@ package org.jetbrains.debugger; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.concurrency.Promise; public abstract class VmBase implements Vm, Vm.AttachStateManager { @@ -11,7 +12,7 @@ public abstract class VmBase implements Vm, Vm.AttachStateManager { this.debugListener = debugListener; } - @NotNull + @Nullable @Override public final synchronized EvaluateContext getEvaluateContext() { if (evaluateContext == null) { @@ -20,8 +21,10 @@ public abstract class VmBase implements Vm, Vm.AttachStateManager { return evaluateContext; } - @NotNull - protected abstract EvaluateContext computeEvaluateContext(); + @Nullable + protected EvaluateContext computeEvaluateContext() { + return null; + } @NotNull @Override