/*******************************************************************************
* Copyright (c) 2012 Pivotal Software, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Pivotal Software, Inc. - initial API and implementation
*******************************************************************************/
package org.springsource.ide.eclipse.commons.frameworks.core.internal.commands;
/**
* Describes command including its parameters. This is intended to be an IMMUTABLE class, and ideally can be used
* globally to define a particular command.
* <p>
* To instantiate a command whose parameter values can be set, use
* {@link IFrameworkCommand}</p>
* @author Nieraj Singh
*/
public interface IFrameworkCommandDescriptor {
/**
* Name of the command. Cannot be null. This is the command script name.
*/
public String getName();
/**
* Description of the command. Optional.
*/
public String getDescription();
/**
* List of parameter descriptors that describe the parameters of this command.
* <p>
* Note that this is order-sensitive, therefore the order in which they appear affects how
* the parameters are constructed in a command string.
* </p>
* @return
*/
public ICommandParameterDescriptor[] getParameters();
}