Package org.eclipse.emf.compare.rcp.ui.internal.contentmergeviewer

## Class SingleValuedAttributeModelUpdateStrategy

- java.lang.Object
- - org.eclipse.emf.compare.rcp.ui.internal.contentmergeviewer.SingleValuedAttributeModelUpdateStrategy

All Implemented Interfaces:
  `IModelUpdateStrategy`

    public class SingleValuedAttributeModelUpdateStrategy
    extends Object
    implements IModelUpdateStrategy

A `IModelUpdateStrategy` for single-valued `EAttributes`.

This strategy is tolerant in the sense that it will not throw exceptions if the input is not a supported `AttributeChange`. In this case, this strategy will return `false` on `canUpdate(Diff, MergeViewerSide)` and return a command on `getModelUpdateCommand(Diff, Object, MergeViewerSide)` that specifies false on `Command.canExecute()`. Therefore, it can be used as default strategy.

### Constructor Summary

Constructors
`SingleValuedAttributeModelUpdateStrategy()`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `canUpdate​(Diff diff, IMergeViewer.MergeViewerSide side)` Specifies whether the value in the model can to be updated on the given `side`.
`Command` `getModelUpdateCommand​(Diff diff, Object newValue, IMergeViewer.MergeViewerSide side)` Returns a command for updating the underlying model with the given `newValue` on the given `side`.

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### SingleValuedAttributeModelUpdateStrategy

    public SingleValuedAttributeModelUpdateStrategy()

### Method Detail

#### canUpdate

    public boolean canUpdate​(Diff diff,
                             IMergeViewer.MergeViewerSide side)

Specifies whether the value in the model can to be updated on the given `side`.

Specified by:
  `canUpdate` in interface `IModelUpdateStrategy`
Parameters:
  `diff` - The diff acting as context of the potential model update.
  `side` - The side to check.
Returns:
  `true` if the value can be updated, `false` otherwise.
See Also:
  `IModelUpdateStrategy.canUpdate(Diff, MergeViewerSide)`

#### getModelUpdateCommand

    public Command getModelUpdateCommand​(Diff diff,
                                         Object newValue,
                                         IMergeViewer.MergeViewerSide side)

Returns a command for updating the underlying model with the given `newValue` on the given `side`.

Specified by:
  `getModelUpdateCommand` in interface `IModelUpdateStrategy`
Parameters:
  `diff` - The diff acting as context of the model update.
  `newValue` - The new value to be set.
  `side` - The side on which the update is to be performed.
Returns:
  A command to perform the model update.
See Also:
  `IModelUpdateStrategy.getModelUpdateCommand(Diff, Object, MergeViewerSide)`