Package org.eclipse.core.commands

# Interface IHandler

All Known Subinterfaces:
  `IHandler2`

All Known Implementing Classes:
  `AbstractEnabledHandler`, `AbstractEvaluationHandler`, `AbstractHandler`, `AbstractHandlerWithState`, `ActionHandler`, `ActivateEditorHandler`, `CloseAllHandler`, `CloseEditorHandler`, `CloseHelpTrayHandler`, `CloseOthersHandler`, `CollapseAllHandler`, `CompareWithOtherResourceHandler`, `CycleEditorHandler`, `CyclePerspectiveHandler`, `CycleViewHandler`, `DebugCommandHandler`, `ExpandAllHandler`, `FileBufferOperationHandler`, `FilteredTableBaseHandler`, `HandlerServiceHandler`, `MarkerViewHandler`, `MergeActionHandler`, `NewPropertySheetHandler`, `ShowInHandler`, `ShowPartPaneMenuHandler`, `ShowPerspectiveHandler`, `ShowViewHandler`, `ShowViewMenuHandler`, `SplitHandler`, `TextZoomInHandler`, `TextZoomOutHandler`, `WorkbenchEditorsHandler`, `WorkbenchHandlerServiceHandler`, `WorkbookEditorsHandler`

public interface IHandler
A handler is the pluggable piece of a command that handles execution. Each command can have zero or more handlers associated with it (in general), of which only one will be active at any given moment in time. When the command is asked to execute, it will simply pass that request on to its active handler, if any.

Since:
  3.1
See Also:
  - `AbstractHandler`

## Method Summary

Modifier and Type
Method
Description
`void`
`addHandlerListener(IHandlerListener handlerListener)`
Registers an instance of `IHandlerListener` to listen for changes to properties of this instance.
`void`
`dispose()`
Disposes of this handler.
`Object`
`execute(ExecutionEvent event)`
Executes with the map of parameter values by name.
`default String`
`getHandlerLabel()`
Return the label for this handler.
`boolean`
`isEnabled()`
Returns whether this handler is capable of executing at this moment in time.
`boolean`
`isHandled()`
Returns whether this handler is really capable of handling delegation.
`void`
`removeHandlerListener(IHandlerListener handlerListener)`
Unregisters an instance of `IHandlerListener` listening for changes to properties of this instance.

## Method Details

### addHandlerListener

void addHandlerListener(IHandlerListener handlerListener)
Registers an instance of `IHandlerListener` to listen for changes to properties of this instance.

Parameters:
  `handlerListener` - the instance to register. Must not be `null`. If an attempt is made to register an instance which is already registered with this instance, no operation is performed.

### dispose

void dispose()
Disposes of this handler. This method is run once when the object is no longer referenced. This can be used as an opportunity to unhook listeners from other objects.

### execute

Object execute(ExecutionEvent event) throws ExecutionException
Executes with the map of parameter values by name.

Parameters:
  `event` - An event containing all the information about the current state of the application; must not be `null`.
Returns:
  the result of the execution. Reserved for future use, must be `null`.
Throws:
  `ExecutionException` - if an exception occurred during execution.

### isEnabled

boolean isEnabled()
Returns whether this handler is capable of executing at this moment in time. If the enabled state is other than true clients should also consider implementing IHandler2 so they can be notified about framework execution contexts.

Returns:
  `true` if the command is enabled; `false` otherwise.
See Also:
  - `IHandler2.setEnabled(Object)`

### isHandled

boolean isHandled()
Returns whether this handler is really capable of handling delegation. In the case of a handler that is a composition of other handlers, this reply is intended to indicate whether the handler is truly capable of receiving delegated responsibilities at this time.

Returns:
  `true` if the handler is handled; `false` otherwise.

### removeHandlerListener

void removeHandlerListener(IHandlerListener handlerListener)
Unregisters an instance of `IHandlerListener` listening for changes to properties of this instance.

Parameters:
  `handlerListener` - the instance to unregister. Must not be `null`. If an attempt is made to unregister an instance which is not already registered with this instance, no operation is performed.

### getHandlerLabel

default String getHandlerLabel()
Return the label for this handler. The handler can implement this method to provide a more dynamic label according to the actual action that is performed. When returning null, callers may instead use the invoking command label or a generic label.

Returns:
  name of the Handler, can be null
Since:
  3.12