001 /*----------------------------------------------------------------------------*/
002 /* Copyright (c) FIRST 2008-2012. All Rights Reserved. */
003 /* Open Source Software - may be modified and shared by FRC teams. The code */
004 /* must be accompanied by the FIRST BSD license file in the root directory of */
005 /* the project. */
006 /*----------------------------------------------------------------------------*/
007
008 package edu.wpi.first.wpilibj.command;
009
010 /**
011 * A {@link StartCommand} will call the {@link Command#start() start()} method of another command when it is initialized
012 * and will finish immediately.
013 *
014 * @author Joe Grinstead
015 */
016 public class StartCommand extends Command {
017
018 /** The command to fork */
019 private Command m_commandToFork;
020
021 /**
022 * Instantiates a {@link StartCommand} which will start the
023 * given command whenever its {@link Command#initialize() initialize()} is called.
024 * @param commandToStart the {@link Command} to start
025 */
026 public StartCommand(Command commandToStart) {
027 super("Start(" + commandToStart + ")");
028 m_commandToFork = commandToStart;
029 }
030
031 protected void initialize() {
032 m_commandToFork.start();
033 }
034
035 protected void execute() {
036 }
037
038 protected boolean isFinished() {
039 return true;
040 }
041
042 protected void end() {
043 }
044
045 protected void interrupted() {
046 }
047 }