/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* 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:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.api.core.model.machine;
import java.util.Map;
/**
* Command that can be used to create {@link Process} in a machine
*
* @author Eugene Voevodin
* @author gazarenkov
*/
public interface Command {
/**
* Returns command name (i.e. 'start tomcat')
* <p>
* The name should be unique per user in one workspace,
* which means that user may create only one command with the same name in the same workspace
*/
String getName();
/**
* Returns command line (i.e. 'mvn clean install') which is going to be executed
* <p>
* Serves as a base for {@link Process} creation.
*/
String getCommandLine();
/**
* Returns command type (i.e. 'maven')
*/
String getType();
/**
* Returns attributes related to this command.
*
* @return command attributes
*/
Map<String, String> getAttributes();
}