blob: e9a9c750afa2cf5e20130b90bd8331cb2bf8e5ba [file] [log] [blame]
package org.eclipse.debug.core;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.model.IDebugTarget;
import org.eclipse.debug.core.model.IPersistableSourceLocator;
import org.eclipse.debug.core.model.IProcess;
/**
* The launch manager manages the set of registered launches, maintaining
* a collection of active processes and debug targets. Clients interested
* in launch notification may register with the launch manager.
* <p>
* Clients are not intended to implement this interface.
* </p>
* @see ILaunch
* @see ILaunchListener
*/
public interface ILaunchManager {
/**
* A launch in a normal, non-debug mode(value <code>"run"</code>).
*/
public static final String RUN_MODE= "run"; //$NON-NLS-1$
/**
* A launch in a special debug mode (value <code>"debug"</code>).
*/
public static final String DEBUG_MODE= "debug"; //$NON-NLS-1$
/**
* Adds the given listener to the collection of registered launch listeners.
* Has no effect if an identical listener is already registerd.
*
* @param listener the listener to register
*/
public void addLaunchListener(ILaunchListener listener);
/**
* Removes the specified launch and notifies listeners.
* Has no effect if an identical launch is not already
* registered.
*
* @param launch the launch to remove
* @since 2.0
*/
public void removeLaunch(ILaunch launch);
/**
* Returns the collection of debug targets currently registered with this
* launch manager.
*
* @return an array of debug targets
*/
public IDebugTarget[] getDebugTargets();
/**
* Returns the collection of launches currently registered
* with this launch manager.
*
* @return an array of launches
*/
public ILaunch[] getLaunches();
/**
* Returns the collection of processes currently registered with this
* launch manager.
*
* @return an array of processes
*/
public IProcess[] getProcesses();
/**
* Adds the specified launch and notifies listeners. Has no
* effect if an identical launch is already registered.
*
* @param launch the launch to add
* @since 2.0
*/
public void addLaunch(ILaunch launch);
/**
* Removes the given listener from the collection of registered launch listeners.
* Has no effect if an identical listener is not already registerd.
*
* @param listener the listener to deregister
*/
public void removeLaunchListener(ILaunchListener listener);
/**
* Returns all launch configurations defined in the workspace.
*
* @return all launch configurations defined in the workspace
* @exception CoreException if an exception occurrs retrieving configurations
* @since 2.0
*/
public ILaunchConfiguration[] getLaunchConfigurations() throws CoreException;
/**
* Returns all launch configurations defined in the workspace
* of the specified type
*
* @param type a launch configuration type
* @return all launch configurations defined in the workspace
* of the specified type
* @exception CoreException if an error occurs while retreiving
* a launch configuration
* @since 2.0
*/
public ILaunchConfiguration[] getLaunchConfigurations(ILaunchConfigurationType type) throws CoreException;
/**
* Returns a handle to the launch configuration contained
* in the specified file. The file is not verified to exist
* or contain a launch configuration.
*
* @param file launch configuration file
* @return a handle to the launch configuration contained
* in the specified file
* @since 2.0
*/
public ILaunchConfiguration getLaunchConfiguration(IFile file);
/**
* Returns a handle to the launch configuration specified by
* the given memento. The configuration may not exist.
*
* @return a handle to the launch configuration specified by
* the given memento
* @exception CoreException if the given memento is invalid or
* an exception occurrs parsing the memento
* @see ILaunchConfiguration#getMemento()
* @since 2.0
*/
public ILaunchConfiguration getLaunchConfiguration(String memento) throws CoreException;
/**
* Returns all defined launch configuration type extensions
*
* @return all defined launch configuration type extensions
* @since 2.0
*/
public ILaunchConfigurationType[] getLaunchConfigurationTypes();
/**
* Returns the launch configuration type extension with the specified
* id, or <code>null</code> if it does not exist.
*
* @param id unique identifier for a launch configuration type extension
* @return the launch configuration type extension with the specified
* id, or <code>null</code> if it does not exist
* @since 2.0
*/
public ILaunchConfigurationType getLaunchConfigurationType(String id);
/**
* Adds the given launch configuration listener to the list
* of listeners notified when a launch configuration is
* added, removed, or changed. Has no effect if the given listener
* is already registered.
*
* @param listener launch configuration listener
* @since 2.0
*/
public void addLaunchConfigurationListener(ILaunchConfigurationListener listener);
/**
* Removes the given launch configuration listener from the list
* of listeners notified when a launch configuration is
* added, removed, or changed. Has no effect if the given listener
* is not already registered.
*
* @param listener launch configuration listener
* @since 2.0
*/
public void removeLaunchConfigurationListener(ILaunchConfigurationListener listener);
/**
* Return <code>true</code> if there is a launch configuration with the specified name,
* <code>false</code> otherwise.
*
* @param name the name of the launch configuration whose existence is being checked
* @exception CoreException if unable to retrieve existing launch configuration names
* @since 2.0
*/
public boolean isExistingLaunchConfigurationName(String name) throws CoreException;
/**
* Creates and returns a new source locator of the specified
* type.
*
* @param identifier the identifier associated with a
* persistable source locator extension
* @return a source locator
* @exception CoreException if an exception occurrs creating
* the source locator
* @since 2.0
*/
public IPersistableSourceLocator newSourceLocator(String identifier) throws CoreException;
}