Class Launch

All Implemented Interfaces:
IAdaptable, IDebugEventSetListener, ILaunch, ILaunchConfigurationListener, ILaunchListener, IDisconnect, ITerminate

A launch is the result of launching a debug session and/or one or more system processes. This class provides a public implementation of ILaunch for client use.

Clients may instantiate this class. Clients may subclass this class.

See Also:
  • Constructor Details

    • Launch

      public Launch(ILaunchConfiguration launchConfiguration, String mode, ISourceLocator locator)
      Constructs a launch with the specified attributes.
      Parameters:
      launchConfiguration - the configuration that was launched
      mode - the mode of this launch - run or debug (constants defined by ILaunchManager)
      locator - the source locator to use for this debug session, or null if not supported
  • Method Details

    • canTerminate

      public boolean canTerminate()
      Description copied from interface: ITerminate
      Returns whether this element can be terminated.
      Specified by:
      canTerminate in interface ITerminate
      Returns:
      whether this element can be terminated
      See Also:
    • getChildren

      public Object[] getChildren()
      Description copied from interface: ILaunch
      Returns the children of this launch - a collection of one or more debug targets and processes, possibly empty.
      Specified by:
      getChildren in interface ILaunch
      Returns:
      an array (element type:IDebugTarget or IProcess), or an empty array
      See Also:
    • getDebugTarget

      public IDebugTarget getDebugTarget()
      Description copied from interface: ILaunch
      Returns the primary (first) debug target associated with this launch, or null if no debug target is associated with this launch. All debug targets associated with this launch may be retrieved by getDebugTargets().
      Specified by:
      getDebugTarget in interface ILaunch
      Returns:
      the primary debug target associated with this launch, or null
      See Also:
    • getProcesses

      public IProcess[] getProcesses()
      Description copied from interface: ILaunch
      Returns the processes that were launched, or an empty collection if no processes were launched.
      Specified by:
      getProcesses in interface ILaunch
      Returns:
      array of processes
      See Also:
    • getProcesses0

      protected List<IProcess> getProcesses0()
      Returns the processes associated with this launch, in its internal form - a list.
      Returns:
      list of processes
    • getSourceLocator

      public ISourceLocator getSourceLocator()
      Description copied from interface: ILaunch
      Returns the source locator to use for locating source elements for the debug target associated with this launch, or null if source lookup is not supported.
      Specified by:
      getSourceLocator in interface ILaunch
      Returns:
      the source locator
      See Also:
    • setSourceLocator

      public void setSourceLocator(ISourceLocator sourceLocator)
      Description copied from interface: ILaunch
      Sets the source locator to use for locating source elements for the debug target associated with this launch, or null if source lookup is not supported.
      Specified by:
      setSourceLocator in interface ILaunch
      Parameters:
      sourceLocator - source locator or null
      See Also:
    • isTerminated

      public boolean isTerminated()
      Description copied from interface: ITerminate
      Returns whether this element is terminated.
      Specified by:
      isTerminated in interface ITerminate
      Returns:
      whether this element is terminated
      See Also:
    • terminate

      public void terminate() throws DebugException
      Description copied from interface: ITerminate
      Causes this element to terminate, generating a TERMINATE event. Implementations may be blocking or non-blocking.
      Specified by:
      terminate in interface ITerminate
      Throws:
      DebugException - on failure. Reasons include:
      • TARGET_REQUEST_FAILED - The request failed in the target
      • NOT_SUPPORTED - The capability is not supported by the target
      See Also:
    • getLaunchMode

      public String getLaunchMode()
      Description copied from interface: ILaunch
      Returns the mode of this launch - one of the mode constants defined by the launch manager.
      Specified by:
      getLaunchMode in interface ILaunch
      Returns:
      the launch mode
      See Also:
    • getLaunchConfiguration

      public ILaunchConfiguration getLaunchConfiguration()
      Description copied from interface: ILaunch
      Returns the configuration that was launched, or null if no configuration was launched.
      Specified by:
      getLaunchConfiguration in interface ILaunch
      Returns:
      the launched configuration or null
      See Also:
    • setAttribute

      public void setAttribute(String key, String value)
      Description copied from interface: ILaunch
      Sets the value of a client defined attribute.
      Specified by:
      setAttribute in interface ILaunch
      Parameters:
      key - the attribute key
      value - the attribute value
      See Also:
    • getAttribute

      public String getAttribute(String key)
      Description copied from interface: ILaunch
      Returns the value of a client defined attribute.
      Specified by:
      getAttribute in interface ILaunch
      Parameters:
      key - the attribute key
      Returns:
      value the attribute value, or null if undefined
      See Also:
    • getDebugTargets

      public IDebugTarget[] getDebugTargets()
      Description copied from interface: ILaunch
      Returns all the debug targets associated with this launch, or an empty collection if no debug targets are associated with this launch. The primary debug target is the first in the collection (if any).
      Specified by:
      getDebugTargets in interface ILaunch
      Returns:
      array of debug targets
      See Also:
    • getDebugTargets0

      protected List<IDebugTarget> getDebugTargets0()
      Returns the debug targets associated with this launch, in its internal form - a list
      Returns:
      list of debug targets
    • addDebugTarget

      public void addDebugTarget(IDebugTarget target)
      Description copied from interface: ILaunch
      Adds the given debug target to this launch. Has no effect if the given debug target is already associated with this launch. Registered listeners are notified that this launch has changed.
      Specified by:
      addDebugTarget in interface ILaunch
      Parameters:
      target - debug target to add to this launch
      See Also:
    • removeDebugTarget

      public void removeDebugTarget(IDebugTarget target)
      Description copied from interface: ILaunch
      Removes the given debug target from this launch. Has no effect if the given debug target is not already associated with this launch. Registered listeners are notified that this launch has changed.
      Specified by:
      removeDebugTarget in interface ILaunch
      Parameters:
      target - debug target to remove from this launch
      See Also:
    • addProcess

      public void addProcess(IProcess process)
      Description copied from interface: ILaunch
      Adds the given process to this launch. Has no effect if the given process is already associated with this launch. Registered listeners are notified that this launch has changed.
      Specified by:
      addProcess in interface ILaunch
      Parameters:
      process - the process to add to this launch
      See Also:
    • removeProcess

      public void removeProcess(IProcess process)
      Description copied from interface: ILaunch
      Removes the given process from this launch. Has no effect if the given process is not already associated with this launch. Registered listeners are notified that this launch has changed.
      Specified by:
      removeProcess in interface ILaunch
      Parameters:
      process - the process to remove from this launch
      See Also:
    • addProcesses

      protected void addProcesses(IProcess[] processes)
      Adds the given processes to this launch.
      Parameters:
      processes - processes to add
    • fireChanged

      protected void fireChanged()
      Notifies listeners that this launch has changed. Has no effect of this launch has not yet been properly created/initialized.
    • fireTerminate

      protected void fireTerminate()
      Notifies listeners that this launch has terminated. Has no effect of this launch has not yet been properly created/initialized.
    • hasChildren

      public boolean hasChildren()
      Description copied from interface: ILaunch
      Returns whether this launch contains at least one process or debug target.
      Specified by:
      hasChildren in interface ILaunch
      Returns:
      whether this launch contains at least one process or debug target
      See Also:
    • canDisconnect

      public boolean canDisconnect()
      Returns whether any processes or targets can be disconnected. Ones that are already terminated or disconnected are ignored.
      Specified by:
      canDisconnect in interface IDisconnect
      Returns:
      whether this element can currently disconnect
      See Also:
    • disconnect

      public void disconnect() throws DebugException
      Description copied from interface: IDisconnect
      Disconnects this element from its target. Generally, disconnecting ends a debug session with a debug target, but allows the target program to continue running.
      Specified by:
      disconnect in interface IDisconnect
      Throws:
      DebugException - on failure. Reasons include:
      • TARGET_REQUEST_FAILED - The request failed in the target
      • NOT_SUPPORTED - The capability is not supported by the target
      See Also:
    • isDisconnected

      public boolean isDisconnected()
      Returns whether all of the contained targets and processes are disconnected. Processes that don't support disconnecting are not counted.
      Specified by:
      isDisconnected in interface IDisconnect
      Returns:
      whether this element is disconnected
      See Also:
    • launchRemoved

      public void launchRemoved(ILaunch launch)
      Description copied from interface: ILaunchListener
      Notifies this listener that the specified launch has been removed.
      Specified by:
      launchRemoved in interface ILaunchListener
      Parameters:
      launch - the removed launch
    • getLaunchManager

      protected ILaunchManager getLaunchManager()
      Returns the launch manager.
      Returns:
      the launch manager.
    • launchAdded

      public void launchAdded(ILaunch launch)
      Description copied from interface: ILaunchListener
      Notifies this listener that the specified launch has been added.
      Specified by:
      launchAdded in interface ILaunchListener
      Parameters:
      launch - the newly added launch
    • launchChanged

      public void launchChanged(ILaunch launch)
      Description copied from interface: ILaunchListener
      Notifies this listener that the specified launch has changed. For example, a process or debug target has been added to the launch.
      Specified by:
      launchChanged in interface ILaunchListener
      Parameters:
      launch - the changed launch
    • launchConfigurationAdded

      public void launchConfigurationAdded(ILaunchConfiguration configuration)
      Description copied from interface: ILaunchConfigurationListener
      The given launch configuration has been created.
      Specified by:
      launchConfigurationAdded in interface ILaunchConfigurationListener
      Parameters:
      configuration - the newly created launch configuration
    • launchConfigurationChanged

      public void launchConfigurationChanged(ILaunchConfiguration configuration)
      Description copied from interface: ILaunchConfigurationListener
      The given launch configuration has changed in some way. The configuration may be a working copy.
      Specified by:
      launchConfigurationChanged in interface ILaunchConfigurationListener
      Parameters:
      configuration - the launch configuration that has changed
    • launchConfigurationRemoved

      public void launchConfigurationRemoved(ILaunchConfiguration configuration)
      Description copied from interface: ILaunchConfigurationListener
      The given launch configuration has been deleted.

      The launch configuration no longer exists. Data stored in the configuration can no longer be accessed, however handle-only attributes of the launch configuration can be retrieved.

      Specified by:
      launchConfigurationRemoved in interface ILaunchConfigurationListener
      Parameters:
      configuration - the deleted launch configuration
    • handleDebugEvents

      public void handleDebugEvents(DebugEvent[] events)
      Description copied from interface: IDebugEventSetListener
      Notifies this listener of the given debug events. All of the events in the given event collection occurred at the same location the program be run or debugged.
      Specified by:
      handleDebugEvents in interface IDebugEventSetListener
      Parameters:
      events - the debug events
    • getAdapter

      public <T> T getAdapter(Class<T> adapter)
      Description copied from class: PlatformObject
      Returns an object which is an instance of the given class associated with this object. Returns null if no such object can be found.

      This implementation of the method declared by IAdaptable passes the request along to the platform's adapter manager; roughly Platform.getAdapterManager().getAdapter(this, adapter). Subclasses may override this method (however, if they do so, they should invoke the method on their superclass to ensure that the Platform's adapter manager is consulted).

      Specified by:
      getAdapter in interface IAdaptable
      Overrides:
      getAdapter in class PlatformObject
      Type Parameters:
      T - the class type
      Parameters:
      adapter - the class to adapt to
      Returns:
      the adapted object or null
      See Also: