/* * Copyright (c) 2011-2015, Dan McNulty * All rights reserved. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package net.udidb.engine.ops.impls.control; import com.google.inject.Inject; import net.libudi.api.exceptions.UdiException; import net.udidb.engine.context.DebuggeeContext; import net.udidb.engine.context.DebuggeeContextAware; import net.udidb.engine.ops.NoDebuggeeContextException; import net.udidb.engine.ops.impls.DisplayNameOperation; import net.udidb.engine.ops.OperationException; import net.udidb.engine.ops.annotations.DisplayName; import net.udidb.engine.ops.annotations.HelpMessage; import net.udidb.engine.ops.results.Result; import net.udidb.engine.ops.results.VoidResult; /** * Operation to continue the debuggee * * @author mcnulty */ @HelpMessage("Continue a debuggee") @DisplayName("continue") public class ContinueDebuggee extends DisplayNameOperation implements DebuggeeContextAware { private DebuggeeContext context; @Inject ContinueDebuggee() { } @Override public Result execute() throws OperationException { if (context == null) { throw new NoDebuggeeContextException(); } try { context.getProcess().continueProcess(); }catch (UdiException e) { throw new OperationException("Failed to continue debuggee", e); } // The process runs until an event occurs return new VoidResult(true); } @Override public void setDebuggeeContext(DebuggeeContext debuggeeContext) { this.context = debuggeeContext; } }