/*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version. You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.aitools.programd.interfaces.shell;
/**
* Defines the interface for processes that can receive commands from the interactive {@link Shell} .
*
* @author <a href="mailto:noel@aitools.org">Noel Bush</a>
*/
public interface ShellCommandable {
/**
* Returns a list of shell commands that are available.
*
* @return a list of shell commands that are available
*/
public String getShellCommands();
/**
* Returns a string that describes the listener when getting a listener list in the interactive shell.
*
* @return a string that describes the listener
*/
public String getShellDescription();
/**
* Returns a string that can be used to send commands to the listener from the interactive shell.
*
* @return a string that can be used to send commands to the listener from the interactive shell
*/
public String getShellID();
/**
* Sends a command to the shell. The <code>ShellCommandable</code> itself is responsible for putting back any output
* to the shell.
*
* @param command the command to send to the shell
*/
public void processShellCommand(String command);
}