# Class MergeActionHandler

java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.core.commands.AbstractHandler
org.eclipse.team.ui.mapping.MergeActionHandler

All Implemented Interfaces:
  `IHandler, IHandler2`

public abstract class MergeActionHandler extends AbstractHandler
An abstract superclass that enables models to create handlers for the basic merge operations (merge, overwrite and mark-as-merged). This class makes use of a `SynchronizationOperation` to determine its enablement state and execute the handler. Enablement is determined using `SynchronizationOperation.shouldRun()` and the handler will invoke `TeamOperation.run()` when executed.

Since:
  3.2
See Also:
  - `SynchronizationActionProvider`

## Constructor Summary

Constructors
Constructor
Description
`MergeActionHandler(ISynchronizePageConfiguration configuration)`
Create the handler.

## Method Summary

Modifier and Type
Method
Description
`void`
`dispose()`
Deregister this handler from selection change events.
`Object`
`execute(ExecutionEvent event)`
Executes with the map of parameter values by name.
`protected final ISynchronizePageConfiguration`
`getConfiguration()`
Return the configuration of the synchronize page that is surfacing the merge action to which this handler is registered.
`static IHandler`
`getDefaultHandler(String mergeActionId, ISynchronizePageConfiguration configuration)`
Return an instance of the default handler for the given merge action id.
`protected abstract SynchronizationOperation`
`getOperation()`
Return the synchronization operation that performs the merge operation.
`SaveableComparison`
`getSaveable()`
Return the saveable that is the target of this handler.
`protected final IStructuredSelection`
`getStructuredSelection()`
Return the current selection.
`boolean`
`isEnabled()`
Whether this handler is capable of executing at this time.
`protected void`
`setEnabled(boolean isEnabled)`
Set the enablement of this handler.
`protected void`
`updateEnablement(IStructuredSelection selection)`
Update the enablement of this handler for the new selection.

### Methods inherited from class AbstractHandler

`addHandlerListener, fireHandlerChanged, hasListeners, isHandled, removeHandlerListener, setBaseEnabled, setEnabled`

### Methods inherited from class EventManager

`addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface IHandler

`getHandlerLabel`

## Constructor Details

### MergeActionHandler

public MergeActionHandler(ISynchronizePageConfiguration configuration)
Create the handler.

Parameters:
  `configuration` - the configuration for the synchronize page displaying the model.

## Method Details

### getDefaultHandler

public static IHandler getDefaultHandler(String mergeActionId, ISynchronizePageConfiguration configuration)
Return an instance of the default handler for the given merge action id. Note that this handler must be disposed by the caller when it is no longer needed.

Parameters:
  `mergeActionId` - the merge action id
  `configuration` - the synchronization page configuration
Returns:
  the default handler for the given merge action or `null`

### dispose

public void dispose()
Deregister this handler from selection change events.

Specified by:
  `dispose` in interface `IHandler`
Overrides:
  `dispose` in class `AbstractHandler`

### updateEnablement

protected void updateEnablement(IStructuredSelection selection)
Update the enablement of this handler for the new selection. By default, this method uses the `shouldRun` method of the handler's operation to determine the enablement of this handler. Subclasses may override but should either still invoke this method or call `setEnabled(boolean)` to set the enablement.

Parameters:
  `selection` - the selection

### getConfiguration

protected final ISynchronizePageConfiguration getConfiguration()
Return the configuration of the synchronize page that is surfacing the merge action to which this handler is registered.

Returns:
  the synchronize page configuration

### getStructuredSelection

protected final IStructuredSelection getStructuredSelection()
Return the current selection.

Returns:
  the current selection.

### isEnabled

public boolean isEnabled()
Description copied from class: `AbstractHandler`
Whether this handler is capable of executing at this time. Subclasses may override this method. If clients override this method they should also consider overriding `AbstractHandler.setEnabled(Object)` so they can be notified about framework execution contexts.

Specified by:
  `isEnabled` in interface `IHandler`
Overrides:
  `isEnabled` in class `AbstractHandler`
Returns:
  `true`
See Also:
  - `AbstractHandler.setEnabled(Object)`
  - `AbstractHandler.setBaseEnabled(boolean)`

### setEnabled

protected void setEnabled(boolean isEnabled)
Set the enablement of this handler.

Parameters:
  `isEnabled` - whether the handler is enabled

### execute

public Object execute(ExecutionEvent event) throws ExecutionException
Description copied from interface: `IHandler`
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.

### getOperation

protected abstract SynchronizationOperation getOperation()
Return the synchronization operation that performs the merge operation.

Returns:
  a synchronization operation

### getSaveable

public SaveableComparison getSaveable()
Return the saveable that is the target of this handler. By default, the saveable of this handlers operation is returned.

Returns:
  the saveable that is the target of this operation