blob: 6415edff49a8fe3189f01bd863072bcf93e3349d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2006 IBM Corporation and others.
* 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:
* IBM Corporation - Initial API and implementation
*******************************************************************************/
package org.eclipse.wst.server.core.internal;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.wst.server.core.IServer;
/**
* A launchable client is a client side application or test
* harness that can be launched (run) against a resource
* running on a server.
*
* <p>This interface is not intended to be implemented by clients.</p>
*/
public interface IClient {
/**
* Returns the id of this client. Each known client has a distinct id.
* Ids are intended to be used internally as keys; they are not
* intended to be shown to end users.
*
* @return the client id
*/
public String getId();
/**
* Returns the displayable name for this client.
* <p>
* Note that this name is appropriate for the current locale.
* </p>
*
* @return a displayable name for this client
*/
public String getName();
/**
* Returns the displayable description for this client.
* <p>
* Note that this description is appropriate for the current locale.
* </p>
*
* @return a displayable description for this client
*/
public String getDescription();
/**
* Returns true if this launchable can be run by this client.
*
* @param server the server
* @param launchable the launchable object
* @param launchMode the mode
* @return boolean
*/
public boolean supports(IServer server, Object launchable, String launchMode);
/**
* Launches the client.
*
* @param server the server
* @param launchable the launchable object
* @param launchMode the mode
* @param launch the launch
* @return a status object with code <code>IStatus.OK</code> if the launch was
* successful, otherwise a status object indicating what went wrong
*/
public IStatus launch(IServer server, Object launchable, String launchMode, ILaunch launch);
}