/* * Oscar Shell Service * Copyright (c) 2004, Richard S. Hall * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * Neither the name of the ungoverned.org nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Contact: Richard S. Hall (heavy@ungoverned.org) * Contributor(s): * **/ package org.ungoverned.osgi.service.shell; import java.io.PrintStream; /** * This interface is used to define commands for the Oscar shell * service. Any bundle wishing to create commands for the Oscar * shell service simply needs to create a service object that * implements this interface and then register it with the OSGi * framework. The Oscar shell service automatically includes any * registered command services in its list of available commands. **/ public interface Command { /** * Returns the name of the command that is implemented by the * interface. The command name should not contain whitespace * and should also be unique. * @return the name of the command. **/ public String getName(); /** * Returns the usage string for the command. The usage string is * a short string that illustrates how to use the command on the * command line. This information is used when generating command * help information. An example usage string for the install * command is: *
* install [ ...]
*
* @return the usage string for the command.
**/
public String getUsage();
/**
* Returns a short description of the command; this description
* should be as short as possible. This information is used when
* generating the command help information.
* @return a short description of the command.
**/
public String getShortDescription();
/**
* Executes the command using the supplied command line, output
* print stream, and error print stream.
* @param line the complete command line, including the command name.
* @param out the print stream to use for standard output.
* @param err the print stream to use for standard error.
**/
public void execute(String line, PrintStream out, PrintStream err);
}