/**
* This file is part of CloudML [ http://cloudml.org ]
*
* Copyright (C) 2012 - SINTEF ICT
* Contact: Franck Chauvel <franck.chauvel@sintef.no>
*
* Module: root
*
* CloudML is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* CloudML is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with CloudML. If not, see
* <http://www.gnu.org/licenses/>.
*/
package org.cloudml.ui.shell.commands;
import org.cloudml.facade.commands.CloudMlCommand;
/**
* Interface required to handle shell commands
*/
public interface ShellCommandHandler {
/**
* Default handler, when no other matches.
*/
public void unknownCommand();
/**
* Exit the CloudML
*/
public void exit();
/**
* Show the version number of the CloudML shell
*/
public void version();
/**
* Show the explanation about how to use the CloudML shell
*
* @param subject the subject on which help is needed
*/
public void help(String subject);
/**
* Dump the local history into the selected. Only the n-first command of the
* history are stored.
*
* @param depth the depth of the history
* @param destination the file where the history must be stored
*/
public void dumpTo(int depth, String destination);
/**
* Show the history of commands entered by th user
*
* @param depth the depth to reach in the history
*/
public void history(int depth);
/**
* Replay the command stored in the given file
*
* @param pathToScript the path to the script to replay
*/
public void replay(String pathToScript);
/**
* Show the last n messages received by the Shell
*
* @param depth the number of messages to display
*/
public void showMessages(int depth);
/**
* Delegate the execution to the given CloudML command, either synchronously
* or asynchronously
*
* @param command the CloudML command to run
* @param runInBackground a flag to run in background or not
*/
public void delegate(CloudMlCommand command, boolean runInBackground);
}