Copyright (c) 2000, 2005 IBM Corporation and others.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
IBM Corporation - initial API and implementation
/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* 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:
id
specifies a unique identifier for this status
handler.
class
specifies the fully qualified name of the Java class
that implements IStatusHandler
.
plugin
plug-in identifier that corresponds to the plug-in of
the status this handler is registered for (i.e.
IStatus.getPlugin()
).
code
specifies the status code this handler is registered
for.
Clients may implement this interface.
See Also: - getStatusHandler.getStatusHandler(IStatus)
Since: 2.0
/**
* 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.
* <p>
* 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.
* </p>
* <p>
* A status handler extension is defined in <code>plugin.xml</code>. Following
* is an example definition of a status handler extension.
* </p>
*
* <pre>
* <extension point="org.eclipse.debug.core.statusHandlers">
* <statusHandler
* id="com.example.ExampleIdentifier"
* class="com.example.ExampleStatusHandler"
* plugin="com.example.ExamplePluginId"
* code="123">
* </statusHandler>
* </extension>
* </pre>
*
* The attributes are specified as follows:
* <ul>
* <li><code>id</code> specifies a unique identifier for this status
* handler.</li>
* <li><code>class</code> specifies the fully qualified name of the Java class
* that implements <code>IStatusHandler</code>.</li>
* <li><code>plugin</code> plug-in identifier that corresponds to the plug-in of
* the status this handler is registered for (i.e.
* <code>IStatus.getPlugin()</code>).</li>
* <li><code>code</code> specifies the status code this handler is registered
* for.</li>
* </ul>
* <p>
* Clients may implement this interface.
* </p>
*
* @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.
Params: - status – the status to handle
- source – the object delegating to this status handler
the given status
Throws: - CoreException – if unable to resolve the status
Returns: an object representing the resolution of the status
/**
* 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
*/
Object handleStatus(IStatus status, Object source) throws CoreException;
}