Eclipse Platform Release 3.7

## org.eclipse.team.ui.synchronize
Class ModelParticipantMergeOperation

    java.lang.Object
      org.eclipse.core.runtime.jobs.JobChangeAdapter
          org.eclipse.team.ui.TeamOperation
              org.eclipse.team.ui.synchronize.ModelOperation
                  org.eclipse.team.ui.synchronize.ModelMergeOperation
                      org.eclipse.team.ui.synchronize.ModelParticipantMergeOperation

All Implemented Interfaces:
  IJobChangeListener, IRunnableWithProgress

    public abstract class ModelParticipantMergeOperation

extends ModelMergeOperation

A model merge operation that uses a participant to preview the changes in either a dialog or the Synchronize view.

Since:
  3.2

Field Summary
`static int` `REQUEST_PREVIEW` Status code that can be returned from the `ModelMergeOperation.performMerge(IProgressMonitor)` method to indicate that a subclass would like to force a preview of the merge.

Constructor Summary
`protected` `ModelParticipantMergeOperation(IWorkbenchPart part, ISynchronizationScopeManager manager)` Create a merge participant operation for the scope of the given manager.

Method Summary
`boolean` `belongsTo(Object family)` Return whether the job that is running this operation should be considered a member member of the given family.
`protected abstract SynchronizationContext` `createMergeContext()` Create a merge context for use by this operation.
`protected ModelSynchronizeParticipant` `createParticipant()` Create the synchronize participant to be used by this operation to preview changes.
`protected void` `execute(IProgressMonitor monitor)` Perform a merge.
`protected void` `executeMerge(IProgressMonitor monitor)` Perform a merge.
`protected ISynchronizationContext` `getContext()` Return the synchronization context for the operation or `null` if the operation doesn't have one or if it has not yet been created.
`protected String` `getPreviewRequestMessage()` Return a string to be used in the preview request on the scope prompt or `null` if a preview of the operation results is not possible.
`protected void` `handlePreviewRequest()` A preview of the merge has been requested.
`protected void` `initializeContext(IProgressMonitor monitor)` Initialize the merge context for this merge operation.
`protected boolean` `isPreviewInDialog()` Return whether previews should occur in a dialog or in the synchronize view.

Methods inherited from class org.eclipse.team.ui.synchronize.ModelMergeOperation
`handleMergeFailure, handleNoChanges, handleValidationFailure, hasChangesOfInterest, performMerge, performMerge, validateMerge`

Methods inherited from class org.eclipse.team.ui.synchronize.ModelOperation
`beginOperation, endOperation, getScope, getScopeManager, initializeScope, isPreviewRequested, promptForInputChange, promptIfInputChange, run, sortByExtension`

Methods inherited from class org.eclipse.team.ui.TeamOperation
`canRunAsJob, getGotoAction, getJobName, getKeepOperation, getOperationIcon, getPart, getSchedulingRule, getShell, isKeepOneProgressServiceEntry, isPostponeAutobuild, isSameFamilyAs, isUserInitiated, run, shouldRun`

Methods inherited from class org.eclipse.core.runtime.jobs.JobChangeAdapter
`aboutToRun, awake, done, running, scheduled, sleeping`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### REQUEST_PREVIEW

    public static final int REQUEST_PREVIEW

  Status code that can be returned from the `ModelMergeOperation.performMerge(IProgressMonitor)` method to indicate that a subclass would like to force a preview of the merge. The message of such a status should be ignored.

  See Also:
    Constant Field Values

Constructor Detail

### ModelParticipantMergeOperation

    protected ModelParticipantMergeOperation(IWorkbenchPart part,
                                             ISynchronizationScopeManager manager)

  Create a merge participant operation for the scope of the given manager.

  Parameters:
    `part` - the workbench part from which the merge was launched or `null`
    `manager` - the scope manager

Method Detail

### initializeContext

    protected void initializeContext(IProgressMonitor monitor)
                              throws CoreException

  Description copied from class: `ModelMergeOperation`
  Initialize the merge context for this merge operation. After this method is invoked, the `ModelOperation.getContext()` method must return an instance of `IMergeContext` that is fully initialized.

  Specified by:
    `initializeContext` in class `ModelMergeOperation`
  Parameters:
    `monitor` - a progress monitor
  Throws:
    `CoreException`

### execute

    protected void execute(IProgressMonitor monitor)
                    throws InvocationTargetException,
                           InterruptedException

  Description copied from class: `ModelMergeOperation`
  Perform a merge. First `ModelMergeOperation.initializeContext(IProgressMonitor)` is called to determine the set of resource changes. Then the `ModelMergeOperation.executeMerge(IProgressMonitor)` method is invoked.

  Overrides:
    `execute` in class `ModelMergeOperation`
  Parameters:
    `monitor` - a progress monitor
  Throws:
    `InvocationTargetException`
    `InterruptedException`

### executeMerge

    protected void executeMerge(IProgressMonitor monitor)
                         throws CoreException

  Description copied from class: `ModelMergeOperation`
  Perform a merge. This method is invoked from `ModelMergeOperation.execute(IProgressMonitor)` after the context has been initialized. If there are changes in the context, they will be validating by calling `ModelMergeOperation.validateMerge(IMergeContext, IProgressMonitor)`. If there are no validation problems, `ModelMergeOperation.performMerge(IProgressMonitor)` will then be called to perform the merge. If there are problems encountered or if a preview was requested, `ModelMergeOperation.handlePreviewRequest()` is called.

  Overrides:
    `executeMerge` in class `ModelMergeOperation`
  Parameters:
    `monitor` - a progress monitor
  Throws:
    `CoreException`

### handlePreviewRequest

    protected void handlePreviewRequest()

  Description copied from class: `ModelMergeOperation`
  A preview of the merge has been requested. By default, this method does nothing. Subclasses that wish to support previewing must override this method to preview the merge and the `ModelOperation.getPreviewRequestMessage()` to have the option presented to the user if the scope changes.

  Overrides:
    `handlePreviewRequest` in class `ModelMergeOperation`

### belongsTo

    public boolean belongsTo(Object family)

  Description copied from class: `TeamOperation`
  Return whether the job that is running this operation should be considered a member member of the given family. Subclasses can override this method in order to support the family based functionality provided by the `IJobManager`. By default, `false` is always returned. Subclasses that override the `isKeepOneProgressServiceEntry` method do not need to override this method, but instead should override `isSameFamilyAs`.

  Overrides:
    `belongsTo` in class `TeamOperation`
  Parameters:
    `family` - the family being tested.
  Returns:
    whether the job that is running this operation should be considered a member member of the given family.

### isPreviewInDialog

    protected boolean isPreviewInDialog()

  Return whether previews should occur in a dialog or in the synchronize view.

  Returns:
    whether previews should occur in a dialog or in the synchronize view

### getContext

    protected ISynchronizationContext getContext()

  Description copied from class: `ModelOperation`
  Return the synchronization context for the operation or `null` if the operation doesn't have one or if it has not yet been created. By default, the method always returns `null`. Subclasses may override.

  Overrides:
    `getContext` in class `ModelOperation`
  Returns:
    the synchronization context for the operation or `null`

### getPreviewRequestMessage

    protected String getPreviewRequestMessage()

  Description copied from class: `ModelOperation`
  Return a string to be used in the preview request on the scope prompt or `null` if a preview of the operation results is not possible. By default, `null` is returned but subclasses may override.

  Overrides:
    `getPreviewRequestMessage` in class `ModelOperation`
  Returns:
    a string to be used in the preview request on the scope prompt or `null` if a preview of the operation results is not possible

### createParticipant

    protected ModelSynchronizeParticipant createParticipant()

  Create the synchronize participant to be used by this operation to preview changes. By default, a `ModelSynchronizeParticipant` is created using the scope manager (`ModelOperation.getScopeManager()`) context from (`createMergeContext()`) and job name (`TeamOperation.getJobName()`) of this operation. Subclasses may override this method.

  Once created, it is the responsibility of the participant to dispose of the synchronization context when it is no longer needed.

  Returns:
    a newly created synchronize participant to be used by this operation

### createMergeContext

    protected abstract SynchronizationContext createMergeContext()

  Create a merge context for use by this operation. This method is not long running so the operation should not refresh the context or perform other long running operations in this thread. However the context may start initializing in another thread as long as the job used to perform the initialization belongs to the family that matches the context.

  Returns:
    a merge context for use by this operation

Eclipse Platform Release 3.7

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2011. All rights reserved.