/******************************************************************************* * Copyright (c) 2000, 2005 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.debug.core; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; /** * A status handler registers to handle a specific status - error * or otherwise. Provides a mechanism for separating core (headless) * function from UI interaction. The debug plug-in provides a * status handlers extension point, against which handlers can * register for specific status codes - identified by plug-in * identifier and plug-in specific status code. The interaction between * an object requiring a status handler (source), and the status handler * is defined by the source and handler. *

* For example, a launch configuration delegate might encounter a timeout * while launching an application. In this case the delegate could abort * or, via the use of a status handler, prompt the user to continue. This * allows the launcher to be implemented in a plug-in that does not require * UI support, and allows another (UI) plug-in to register a handler. *

*

* A status handler extension is defined in plugin.xml. * Following is an example definition of a status handler extension. *

 * <extension point="org.eclipse.debug.core.statusHandlers">
 *   <statusHandler 
 *      id="com.example.ExampleIdentifier"
 *      class="com.example.ExampleStatusHandler"
 *      plugin="com.example.ExamplePluginId"
 *      code="123">
 *   </statusHandler>
 * </extension>
 * 
* The attributes are specified as follows: * *

*

* Clients may implement this interface. *

* @see DebugPlugin#getStatusHandler(IStatus) * @since 2.0 */ public interface IStatusHandler { /** * Notifies this status handler that the given status has been * generated by the specified source object and requires resolution. * * @param status the status to handle * @param source the object delegating to this status handler * the given status * @return an object representing the resolution of the status * @exception CoreException if unable to resolve the status */ public Object handleStatus(IStatus status, Object source) throws CoreException; }