package jetbrains.mps.baseLanguage.unitTest.execution.server; /*Generated by MPS */ import org.junit.runner.Runner; import org.junit.runner.Request; import org.junit.runner.notification.RunNotifier; import org.junit.runner.Description; public class StoppableRunner extends Runner { private final Object myLock = ""; protected final Request myRequest; private boolean myStopping; private RunNotifier myNotifier = null; public StoppableRunner(Request request, boolean stopping) { myRequest = request; myStopping = stopping; } @Override public Description getDescription() { return myRequest.getRunner().getDescription(); } @Override public void run(RunNotifier notifier) { synchronized (myLock) { if (myStopping) { notifier.pleaseStop(); } myNotifier = notifier; } doRun(notifier); } protected void doRun(RunNotifier notifier) { myRequest.getRunner().run(notifier); } public void pleaseStop() { synchronized (myLock) { if (myNotifier != null) { myNotifier.pleaseStop(); } myStopping = true; } } }