Java 类org.eclipse.debug.core.DebugEvent 实例源码

项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapter.java   
/**
 * Handles the given {@link ResumingReply}.
 * 
 * @param resumingReply
 *            the {@link ResumingReply}
 */
private void handleResumingReply(ResumingReply resumingReply) {
    final Thread eThread = DebugTargetUtils.getThread(getHost(), resumingReply.getThreadName());
    if (resumingReply instanceof StepIntoResumingReply) {
        // EMF model change
        factory.getModelUpdater().stepIntoReply(eThread);
        // Eclipse change
        factory.getThread(eThread).fireResumeEvent(DebugEvent.STEP_INTO);
    } else if (resumingReply instanceof StepOverResumingReply) {
        // EMF model change
        factory.getModelUpdater().stepOverReply(eThread);
        // Eclipse change
        factory.getThread(eThread).fireResumeEvent(DebugEvent.STEP_OVER);
    } else if (resumingReply instanceof StepReturnResumingReply) {
        // EMF model change
        factory.getModelUpdater().stepReturnReply(eThread);
        // Eclipse change
        factory.getThread(eThread).fireResumeEvent(DebugEvent.STEP_RETURN);
    } else {
        // EMF model change
        factory.getModelUpdater().resumedReply(eThread);
        // Eclipse change
        factory.getThread(eThread).fireResumeEvent(DebugEvent.CLIENT_REQUEST);
    }
    fireChangeEvent(DebugEvent.STATE);
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapter.java   
/**
 * Handles the given {@link SuspendedReply}.
 * 
 * @param suspendReply
 *            the {@link SuspendedReply}
 */
private void handleSuspendReply(SuspendedReply suspendReply) {
    final Thread eThread = DebugTargetUtils.getThread(getHost(), suspendReply.getThreadName());
    final DSLThreadAdapter thread = factory.getThread(eThread);

    // EMF model change
    factory.getModelUpdater().suspendedReply(eThread);
    // Eclipse change
    if (suspendReply instanceof SteppedReply) {
        thread.fireSuspendEvent(DebugEvent.STEP_END);
    } else if (suspendReply instanceof BreakpointReply) {
        thread.fireSuspendEvent(DebugEvent.BREAKPOINT);
    } else {
        thread.fireSuspendEvent(DebugEvent.CLIENT_REQUEST);
    }
    fireChangeEvent(DebugEvent.STATE);
    // notify our suspend listeners

}
项目:google-cloud-eclipse    文件:LocalAppEngineServerLaunchConfigurationDelegate.java   
@Override
public void serverChanged(ServerEvent event) {
  Preconditions.checkState(server == event.getServer());
  switch (event.getState()) {
    case IServer.STATE_STARTED:
      openBrowserPage(server);
      fireChangeEvent(DebugEvent.STATE);
      return;

    case IServer.STATE_STOPPED:
      server.removeServerListener(serverEventsListener);
      fireTerminateEvent();
      try {
        logger.fine("Server stopped; terminating launch"); //$NON-NLS-1$
        launch.terminate();
      } catch (DebugException ex) {
        logger.log(Level.WARNING, "Unable to terminate launch", ex); //$NON-NLS-1$
      }
      return;

    default:
      fireChangeEvent(DebugEvent.STATE);
      return;
  }
}
项目:statecharts    文件:SimulationView.java   
protected void handleDebugEvent(DebugEvent debugEvent) {
    updateActions();
    switch (debugEvent.getKind()) {
        case DebugEvent.TERMINATE :
            setViewerInput(null);
            break;
        case DebugEvent.SUSPEND :
            break;
        case DebugEvent.RESUME :
            break;
    }
    Display.getDefault().asyncExec(() -> {
        if (debugEvent.getSource() != null) {
            sessionDropdown.refresh();
            targets.removeIf(dt -> dt.isTerminated());
        }
    });
}
项目:monto-eclipse    文件:MontoDebugTarget.java   
public void onBreakpointHit(ProductMessage productMessage) {
  System.out.println("MontoDebugTarget.onBreakpointHit()");
  HitBreakpoint hitBreakpoint = GsonMonto.fromJson(productMessage, HitBreakpoint.class);

  if (productMessage.getSource().equals(sessionSource)) {
    isSuspended = true;

    MontoThread hitThread = convertMontoToEclipseThread(this, hitBreakpoint.getHitThread());
    threads.clear();
    threads.add(hitThread);
    for (Thread montoThread : hitBreakpoint.getOtherThreads()) {
      threads.add(convertMontoToEclipseThread(this, montoThread));
    }
    threads.forEach(thread -> thread.fireSuspendEvent(DebugEvent.BREAKPOINT));
  }
}
项目:monto-eclipse    文件:MontoProcess.java   
void onProcessTerminatedProduct(ProductMessage productMessage) {
  if (productMessage.getSource().equals(sessionSource)) {
    ProcessTerminated processTerminated =
        GsonMonto.fromJson(productMessage, ProcessTerminated.class);

    terminated = true;
    exitCode = processTerminated.getExitCode();
    System.out.println("Process " + sessionId + " terminated");
    DebugPlugin.getDefault()
        .fireDebugEventSet(new DebugEvent[] {new DebugEvent(this, DebugEvent.TERMINATE)});

    // deregister product listeners

    // Deregistration needs to happen is separate thread, because removing listeners in this
    // callback method, which is called from the SinkDemultiplexer thread, causes a
    // ConcurrentModification exception in the SinkDemultiplexer thread, because the listener
    // map/list is SinkDemultiplexer is modified, before all listeners are called
    CompletableFuture.runAsync(() -> {
      Activator.getDefault().getDemultiplexer().removeProductListener(Products.PROCESS_TERMINATED,
          this);
      Activator.getDefault().getDemultiplexer().removeProductListener(Products.STREAM_OUTPUT,
          this);
    });
  }
}
项目:gwt-eclipse-plugin    文件:GwtWtpPlugin.java   
/**
 * When a Server runtime server is started and terminated, and the project has a GWT Facet, start and stop the GWT
 * Super Dev Mode Code Server with runtime server.
 */
@Override
public void start(BundleContext context) throws Exception {
  super.start(context);

  // Observe launch events that are from the WTP server
  serverProcessListener = new IDebugEventSetListener() {
    @Override
    public void handleDebugEvents(DebugEvent[] events) {
      if (events != null) {
        onDebugEvents(events);
      }
    }
  };
  DebugPlugin.getDefault().addDebugEventListener(serverProcessListener);
}
项目:gwt-eclipse-plugin    文件:GwtWtpPlugin.java   
private void onAfterCodeServerStarted(DebugEvent event) {
  if (!(event.getSource() instanceof IProcess)) {
    return;
  }

  IProcess runtimeProcess = (IProcess) event.getSource();
  final ILaunch launch = runtimeProcess.getLaunch();
  IProcess[] processes = launch.getProcesses();
  final IProcess process = processes[0];

  // Look for the links in the sdm console output
  consoleStreamListenerCodeServer = new IStreamListener() {
    @Override
    public void streamAppended(String text, IStreamMonitor monitor) {
      displayCodeServerUrlInDevMode(launch, text);
    }
  };

  // Listen to Console output
  streamMonitorCodeServer = process.getStreamsProxy().getOutputStreamMonitor();
  streamMonitorCodeServer.addListener(consoleStreamListenerCodeServer);
}
项目:brainfuck    文件:BfProcess.java   
@Override
public void interpreterSuspended(InterpreterState state, List<EventReason> eventReasons) {
    this.suspendedState = state;
    this.isSuspended = true;
    synchronized (this.debugElements) {
        for (DebugElement element : this.debugElements) {
            if (eventReasons.contains(EventReason.BreakPoint) || eventReasons.contains(EventReason.WatchPoint)) {
                element.fireSuspendEvent(DebugEvent.BREAKPOINT);
            }
            if (eventReasons.contains(EventReason.ClientRequest)) {
                element.fireSuspendEvent(DebugEvent.CLIENT_REQUEST);
            }
            if (eventReasons.contains(EventReason.StepEnd)) {
                element.fireSuspendEvent(DebugEvent.STEP_END);
            }
        }
    }
}
项目:brainfuck    文件:BfProcess.java   
@Override
public void interpreterFinished(InterpreterState state, List<EventReason> reasons) {
    this.isStopped = true;
    this.isSuspended = false;
    IDebugTarget target = null;
    if (DebugPlugin.getDefault() != null) {
        synchronized (this.debugElements) {
            for (DebugElement element : this.debugElements) {
                element.fireTerminateEvent();
                target = element.getDebugTarget();
            }
        }
        DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[]{new DebugEvent(BfProcess.this, DebugEvent.TERMINATE)});
        if (target != null && target instanceof BfDebugTarget) {
            ((BfDebugTarget) target).fireTerminateEvent();
        }
    }
}
项目:chromedevtools    文件:JsInspectExpression.java   
public void handleDebugEvents(DebugEvent[] events) {
  for (DebugEvent event : events) {
    switch (event.getKind()) {
      case DebugEvent.TERMINATE:
        if (event.getSource().equals(getDebugTarget())) {
          DebugPlugin.getDefault().getExpressionManager().removeExpression(this);
        }
        break;
      case DebugEvent.SUSPEND:
        if (event.getDetail() != DebugEvent.EVALUATION_IMPLICIT &&
            event.getSource() instanceof IDebugElement) {
          IDebugElement source = (IDebugElement) event.getSource();
          if (source.getDebugTarget().equals(getDebugTarget())) {
            DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {
                new DebugEvent(this, DebugEvent.CHANGE, DebugEvent.CONTENT) });
          }
        }
        break;
    }
  }
}
项目:ModelDebugging    文件:DSLDebugTargetAdapter.java   
/**
 * Handles the given {@link ResumingReply}.
 * 
 * @param resumingReply
 *            the {@link ResumingReply}
 */
private void handleResumingReply(ResumingReply resumingReply) {
    final Thread eThread = DebugTargetUtils.getThread(getHost(), resumingReply.getThreadName());
    if (resumingReply instanceof StepIntoResumingReply) {
        // EMF model change
        factory.getModelUpdater().stepIntoReply(eThread);
        // Eclipse change
        factory.getThread(eThread).fireResumeEvent(DebugEvent.STEP_INTO);
    } else if (resumingReply instanceof StepOverResumingReply) {
        // EMF model change
        factory.getModelUpdater().stepOverReply(eThread);
        // Eclipse change
        factory.getThread(eThread).fireResumeEvent(DebugEvent.STEP_OVER);
    } else if (resumingReply instanceof StepReturnResumingReply) {
        // EMF model change
        factory.getModelUpdater().stepReturnReply(eThread);
        // Eclipse change
        factory.getThread(eThread).fireResumeEvent(DebugEvent.STEP_RETURN);
    } else {
        // EMF model change
        factory.getModelUpdater().resumedReply(eThread);
        // Eclipse change
        factory.getThread(eThread).fireResumeEvent(DebugEvent.CLIENT_REQUEST);
    }
    fireChangeEvent(DebugEvent.STATE);
}
项目:ModelDebugging    文件:DSLDebugTargetAdapter.java   
/**
 * Handles the given {@link SuspendedReply}.
 * 
 * @param suspendReply
 *            the {@link SuspendedReply}
 */
private void handleSuspendReply(SuspendedReply suspendReply) {
    final Thread eThread = DebugTargetUtils.getThread(getHost(), suspendReply.getThreadName());
    final DSLThreadAdapter thread = factory.getThread(eThread);

    // EMF model change
    factory.getModelUpdater().suspendedReply(eThread);
    // Eclipse change
    if (suspendReply instanceof SteppedReply) {
        thread.fireSuspendEvent(DebugEvent.STEP_END);
    } else if (suspendReply instanceof BreakpointReply) {
        thread.fireSuspendEvent(DebugEvent.BREAKPOINT);
    } else {
        thread.fireSuspendEvent(DebugEvent.CLIENT_REQUEST);
    }
    fireChangeEvent(DebugEvent.STATE);
    // notify our suspend listeners

}
项目:txtUML    文件:RuntimeSessionTrackerTest.java   
@Test
public void multipleSessionsAreTracked() {
    FakePlugin fp = new FakePlugin();
    RuntimeSessionTracker rst = new RuntimeSessionTracker(null, fp);
    assertThat("The session should be alive", fp.shutdownWasCalled, is(0));
    rst.handleDebugEvents(new DebugEvent[] {new DebugEvent(new FakeProcess(), DebugEvent.CREATE)});
    rst.handleDebugEvents(new DebugEvent[] {new DebugEvent(new FakeProcess(), DebugEvent.CREATE)});
    assertThat("The session should be alive", fp.shutdownWasCalled, is(0));
    rst.handleDebugEvents(new DebugEvent[] {new DebugEvent(new FakeProcess(), DebugEvent.TERMINATE)});
    assertThat("The session should be alive", fp.shutdownWasCalled, is(0));
    rst.handleDebugEvents(new DebugEvent[] {new DebugEvent(new FakeProcess(), DebugEvent.CREATE)});
    rst.handleDebugEvents(new DebugEvent[] {new DebugEvent(new FakeProcess(), DebugEvent.TERMINATE)});
    assertThat("The session should be alive", fp.shutdownWasCalled, is(0));
    rst.handleDebugEvents(new DebugEvent[] {new DebugEvent(new FakeProcess(), DebugEvent.TERMINATE)});
    assertThat("The session should be over", fp.shutdownWasCalled, is(1));
}
项目:txtUML    文件:RuntimeSessionTracker.java   
@Override
public void handleDebugEvents(DebugEvent[] events) {
    for (DebugEvent debugEvent : events) {
        if (debugEvent.getSource() instanceof IProcess &&
                ((IProcess)debugEvent.getSource()).getLaunch() == trackedLaunch) {
            if (debugEvent.getKind() == DebugEvent.CREATE) {
                liveProcessCount++;
                assert liveProcessCount > 0;
            }
            else if (debugEvent.getKind() == DebugEvent.TERMINATE) {
                liveProcessCount--;
                assert liveProcessCount >= 0;
                if (liveProcessCount == 0) {
                    dispose();
                }
            }
        }
    }
}
项目:karaf-eik    文件:KarafRemoteConsole.java   
@Override
public void handleDebugEvents(final DebugEvent[] events) {
    for (final DebugEvent event : events) {
        if (event.getSource().equals(process)) {
            if (event.getKind() == DebugEvent.TERMINATE) {
                if (shellConnection != null) {
                    try {
                        shellConnection.disconnect();
                    } catch (final IOException e) {
                        KarafUIPluginActivator.getLogger().error("Unable to disconnect from SSH server", e);
                    }
                }
                DebugPlugin.getDefault().removeDebugEventListener(this);

                resetName();
            }
        }
    }
}
项目:watchdog    文件:DebuggerListener.java   
@Override
public void handleDebugEvents(DebugEvent[] events) {
    for (DebugEvent event : events) {
        switch (event.getKind()) {
        case DebugEvent.CREATE:
            if (event.getSource() instanceof IDebugTarget) {
                WatchDogEventType.START_DEBUG.process(this);
            }
            break;

        case DebugEvent.TERMINATE:
            if (event.getSource() instanceof IDebugTarget) {
                WatchDogEventType.END_DEBUG.process(this);
            }
            break;

        default:
            break;
        }
    }
}
项目:watchdog    文件:DebugEventListener.java   
private void handleSuspendEvent(DebugEvent event) {
    switch (event.getDetail()) {
    case DebugEvent.BREAKPOINT:
        TrackingEventManager.addEvent(new DebugEventBase(
                TrackingEventType.SUSPEND_BREAKPOINT, new Date()));
        break;
    case DebugEvent.CLIENT_REQUEST:
        TrackingEventManager.addEvent(new DebugEventBase(
                TrackingEventType.SUSPEND_CLIENT, new Date()));
        break;
    case DebugEvent.EVALUATION:
        TrackingEventManager.addEvent(new DebugEventBase(
                TrackingEventType.INSPECT_VARIABLE, new Date()));
        break;
    }
}
项目:watchdog    文件:DebugEventListener.java   
private void handleResumeEvent(DebugEvent event) {
    switch (event.getDetail()) {
    case DebugEvent.STEP_INTO:
        TrackingEventManager.addEvent(
                new DebugEventBase(TrackingEventType.STEP_INTO, new Date()));
        break;
    case DebugEvent.STEP_OVER:
        TrackingEventManager.addEvent(
                new DebugEventBase(TrackingEventType.STEP_OVER, new Date()));
        break;
    case DebugEvent.STEP_RETURN:
        TrackingEventManager.addEvent(
                new DebugEventBase(TrackingEventType.STEP_OUT, new Date()));
        break;
    case DebugEvent.CLIENT_REQUEST:
        TrackingEventManager.addEvent(new DebugEventBase(
                TrackingEventType.RESUME_CLIENT, new Date()));
        break;
    }
}
项目:jive    文件:AbstractJiveView.java   
@Override
public void handleDebugEvents(final DebugEvent[] events)
{
  // allow views to be selectively enabled/disabled
  if (!this.isEnabled())
  {
    return;
  }
  // dispatch an async update for at most one event
  DebugEvent updateEvent = null;
  for (final DebugEvent event : events)
  {
    if (event.getKind() == DebugEvent.RESUME || event.getKind() == DebugEvent.SUSPEND
        || event.getKind() == DebugEvent.TERMINATE || event.getKind() == DebugEvent.STATE)
    {
      updateEvent = event;
      break;
    }
  }
  if (updateEvent != null)
  {
    updateActionBar();
  }
}
项目:Pydev    文件:ContainerOfVariables.java   
PyVariable[] setVariables(PyVariable[] newVars) {
    IVariable[] oldVars = this.variables;
    if (newVars == oldVars) {
        return newVars;
    }
    IVariablesContainerParent p = this.parent.get();
    if (p == null) {
        return newVars;
    }
    AbstractDebugTarget target = p.getTarget();
    this.variables = newVars;

    if (!gettingInitialVariables) {
        if (target != null) {
            target.fireEvent(new DebugEvent(p, DebugEvent.CHANGE, DebugEvent.CONTENT));
        }
    }
    return newVars;
}
项目:Pydev    文件:ConsoleRestartLaunchPageParticipant.java   
@Override
public void handleDebugEvents(DebugEvent[] events) {
    for (int i = 0; i < events.length; i++) {
        DebugEvent event = events[i];
        if (event.getSource().equals(getProcess())) {
            Runnable r = new Runnable() {
                @Override
                public void run() {
                    if (restartLaunchAction != null) {
                        restartLaunchAction.update();
                    }
                    if (terminateAllLaunchesAction != null) {
                        terminateAllLaunchesAction.update();
                    }
                }
            };

            DebugUIPlugin.getStandardDisplay().asyncExec(r);
        }
    }
}
项目:teavm    文件:TeaVMDebugTarget.java   
private void updateBreakpoint(Breakpoint teavmBreakpoint) {
    IJavaLineBreakpoint breakpoint = breakpointBackMap.get(teavmBreakpoint);
    if (breakpoint != null) {
        try {
            if (!teavmBreakpoint.isValid() || !teavmDebugger.isAttached()) {
                breakpoint.getMarker().setAttribute(JAVA_BREAKPOINT_INSTALL_COUNT, 0);
            } else {
                breakpoint.getMarker().setAttribute(JAVA_BREAKPOINT_INSTALL_COUNT, 1);
            }
            DebugPlugin.getDefault().getBreakpointManager().fireBreakpointChanged(breakpoint);
        } catch (CoreException e) {
            throw new RuntimeException(e);
        }
        fireEvent(new DebugEvent(breakpoint, DebugEvent.CHANGE));
    }
}
项目:launchpi    文件:RemoteProcess.java   
@Override
public void terminate() throws DebugException {
    streamsProxy.closeInputStream();
    shell.exit();
    ((AbstractHostShellOutputReader) shell.getStandardOutputReader()).interrupt();
    ((AbstractHostShellOutputReader) shell.getStandardErrorReader()).interrupt();
    try {
        cmdSubSystem.disconnect();
    } catch (Exception e) {
        throw new DebugException(new Status(
                IStatus.WARNING, LaunchPlugin.PLUGIN_ID, "Cannot disconnect command subsystem", e)); //$NON-NLS-1$
    }
    terminated = true;
    getSystemRegistry().removeSystemResourceChangeListener(this);
    DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {new DebugEvent(this, DebugEvent.TERMINATE)});
}
项目:n4js    文件:XpectConfigurationDelegate.java   
@Override
public void handleDebugEvents(DebugEvent[] events) {
    for (DebugEvent e : events) {
        switch (e.getKind()) {
        case DebugEvent.TERMINATE:
            DebugPlugin.getDefault().removeDebugEventListener(this);
            terminateProcess();
            break;
        default:
            break;
        }
    }
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventSuspendedReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new SuspendedReply(eDebugTarget.getThreads().get(runningThreadIndex)
                .getName()));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(2, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            runningThreadIndex)));
    assertEquals(DebugEvent.SUSPEND, event.getKind());
    assertEquals(DebugEvent.CLIENT_REQUEST, event.getDetail());

    events = listener.getEventsList().get(1);
    assertEquals(1, events.length);
    event = events[0];
    assertTrue(event.getSource() == debugTarget);
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.STATE, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventSteppedReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new SteppedReply(eDebugTarget.getThreads().get(runningThreadIndex)
                .getName()));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(2, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            runningThreadIndex)));
    assertEquals(DebugEvent.SUSPEND, event.getKind());
    assertEquals(DebugEvent.STEP_END, event.getDetail());

    events = listener.getEventsList().get(1);
    assertEquals(1, events.length);
    event = events[0];
    assertTrue(event.getSource() == debugTarget);
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.STATE, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventBreakpointReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new BreakpointReply(eDebugTarget.getThreads().get(runningThreadIndex)
                .getName()));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(2, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            runningThreadIndex)));
    assertEquals(DebugEvent.SUSPEND, event.getKind());
    assertEquals(DebugEvent.BREAKPOINT, event.getDetail());

    events = listener.getEventsList().get(1);
    assertEquals(1, events.length);
    event = events[0];
    assertTrue(event.getSource() == debugTarget);
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.STATE, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventTerminatedReplyThread() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new TerminatedReply(eDebugTarget.getThreads().get(runningThreadIndex)
                .getName()));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(1, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            runningThreadIndex)));
    assertEquals(DebugEvent.TERMINATE, event.getKind());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventTerminatedReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new TerminatedReply());
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(1, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == debugTarget);
    assertEquals(DebugEvent.TERMINATE, event.getKind());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventSpawnRunningThreadReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    DebugPlugin.getDefault().addDebugEventListener(listener);
    final EObject context = DebugPackage.eINSTANCE.getDebugFactory().createVariable();
    try {
        debugTarget.handleEvent(new SpawnRunningThreadReply("thread", context));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(9, eDebugTarget.getThreads().size());

    assertEquals(1, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == debugTarget);
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.CONTENT, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventResumingReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new ResumingReply(eDebugTarget.getThreads().get(suspendedThreadIndex)
                .getName()));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(2, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            suspendedThreadIndex)));
    assertEquals(DebugEvent.RESUME, event.getKind());
    assertEquals(DebugEvent.CLIENT_REQUEST, event.getDetail());

    events = listener.getEventsList().get(1);
    assertEquals(1, events.length);
    event = events[0];
    assertTrue(event.getSource() == debugTarget);
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.STATE, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventStepOverResumingReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new StepOverResumingReply(eDebugTarget.getThreads().get(
                suspendedThreadIndex).getName()));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(2, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            suspendedThreadIndex)));
    assertEquals(DebugEvent.RESUME, event.getKind());
    assertEquals(DebugEvent.STEP_OVER, event.getDetail());

    events = listener.getEventsList().get(1);
    assertEquals(1, events.length);
    event = events[0];
    assertTrue(event.getSource() == debugTarget);
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.STATE, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventVariableReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new VariableReply(eDebugTarget.getThreads().get(suspendedThreadIndex)
                .getName(), eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame()
                .getName(), "Object", "variable", null, false));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(1, eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame().getVariables()
            .size());

    assertEquals(1, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            suspendedThreadIndex)));
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.CONTENT, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventDeleteVariableReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    ThreadUtils.setVariableReply(eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame(),
            "Object", "variable", null, false);
    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new DeleteVariableReply(eDebugTarget.getThreads().get(
                suspendedThreadIndex).getName(), "variable"));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(0, eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame().getVariables()
            .size());

    assertEquals(1, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            suspendedThreadIndex)));
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.CONTENT, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventPushStackFrameReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    final EObject context = DebugPackage.eINSTANCE.getDebugFactory().createVariable();
    final EObject instruction = DebugPackage.eINSTANCE.getDebugFactory().createVariable();
    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new PushStackFrameReply(eDebugTarget.getThreads().get(
                suspendedThreadIndex).getName(), "frame", context, instruction, false));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals("frame", eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame()
            .getName());

    assertEquals(1, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            suspendedThreadIndex)));
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.CONTENT, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventPopStackFrameReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    final EObject context = DebugPackage.eINSTANCE.getDebugFactory().createVariable();
    final EObject instruction = DebugPackage.eINSTANCE.getDebugFactory().createVariable();
    ThreadUtils.pushStackFrameReply(eDebugTarget.getThreads().get(suspendedThreadIndex), "frame",
            context, instruction, false);
    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new PopStackFrameReply(eDebugTarget.getThreads()
                .get(suspendedThreadIndex).getName()));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(eDebugTarget.getThreads().get(suspendedThreadIndex).getBottomStackFrame(), eDebugTarget
            .getThreads().get(suspendedThreadIndex).getTopStackFrame());

    assertEquals(1, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            suspendedThreadIndex)));
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.CONTENT, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventSetCurrentInstructionReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event

    final EObject instruction = DebugPackage.eINSTANCE.getDebugFactory().createVariable();
    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new SetCurrentInstructionReply(eDebugTarget.getThreads().get(
                suspendedThreadIndex).getName(), instruction, false));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(instruction, eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame()
            .getCurrentInstruction());

    assertEquals(1, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            suspendedThreadIndex)));
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.CONTENT, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapterTests.java   
/**
 * Test {@link DSLDebugTargetAdapter#handleEvent(org.eclipse.gemoc.dsl.debug.ide.event.IDSLDebugEvent)}.
 * 
 * @throws DebugException
 *             if fail
 */
@Test
public void handleEventSetVariableValueReply() throws DebugException {
    DebugTarget eDebugTarget = DebugPackage.eINSTANCE.getDebugFactory().createDebugTarget();
    eDebugTarget.setName("Debug target");
    final TestEventProcessor testEventProcessor = new TestEventProcessor();
    final DSLEclipseDebugIntegration integration = new DSLEclipseDebugIntegration("id", null,
            eDebugTarget, new ModelUpdater(), testEventProcessor);
    final DSLDebugTargetAdapter debugTarget = integration.getDebugTarget();
    TestDebugEventSetListener listener = new TestDebugEventSetListener();

    createThreads(eDebugTarget);
    debugTarget.getThreads(); // force adapter creation to avoid create event
    debugTarget.handleEvent(new VariableReply(eDebugTarget.getThreads().get(suspendedThreadIndex)
            .getName(), eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame().getName(),
            "Object", "variable", null, false));

    DebugPlugin.getDefault().addDebugEventListener(listener);
    try {
        debugTarget.handleEvent(new SetVariableValueReply(eDebugTarget.getThreads().get(
                suspendedThreadIndex).getName(), eDebugTarget.getThreads().get(suspendedThreadIndex)
                .getTopStackFrame().getName(), "variable", "value"));
        listener.waitForEvent();
    } finally {
        DebugPlugin.getDefault().removeDebugEventListener(listener);
    }

    assertEquals(1, eDebugTarget.getThreads().get(suspendedThreadIndex).getTopStackFrame().getVariables()
            .size());

    assertEquals(1, listener.getEventsList().size());
    DebugEvent[] events = listener.getEventsList().get(0);
    assertEquals(1, events.length);
    DebugEvent event = events[0];
    assertTrue(event.getSource() == integration.getThread(eDebugTarget.getThreads().get(
            suspendedThreadIndex)));
    assertEquals(DebugEvent.CHANGE, event.getKind());
    assertEquals(DebugEvent.CONTENT, event.getDetail());
}
项目:gemoc-studio-modeldebugging    文件:DSLDebugTargetAdapter.java   
/**
 * Handles the given {@link SetVariableValueReply}.
 * 
 * @param variableValueReply
 *            the given {@link SetVariableValueReply}
 */
private void handleSetVariableValueReply(SetVariableValueReply variableValueReply) {
    final Thread eThread = DebugTargetUtils.getThread(getHost(), variableValueReply.getThreadName());
    final StackFrame eFrame = DebugTargetUtils.getStackFrame(eThread, variableValueReply.getStackName());
    final Variable eVariable = DebugTargetUtils.getVariable(eFrame, variableValueReply.getVariableName());
    // EMF model change
    factory.getModelUpdater().setVariableValueReply(eVariable, variableValueReply.getValue());
    // Eclipse change
    factory.getThread(eThread).fireChangeEvent(DebugEvent.CONTENT);
}