org.eclipse.team.ui.synchronize
Class ModelOperation
java.lang.Object
org.eclipse.core.runtime.jobs.JobChangeAdapter
org.eclipse.team.ui.TeamOperation
org.eclipse.team.ui.synchronize.ModelOperation
-
All Implemented Interfaces:
-
IJobChangeListener,
IRunnableWithProgress
-
Direct Known Subclasses:
-
ModelMergeOperation
-
public abstract class ModelOperation
- extends
TeamOperation
An abstract operation that uses an
ISynchronizationScopeManager
to
create an operation scope that includes the complete set of mappings that
must be included in the operation to ensure model consistency. The scope
generation phase will prompt the user if additional resources have been added
to the scope.
-
Since:
- 3.2
Methods inherited from class org.eclipse.team.ui.
TeamOperation
|
belongsTo,
canRunAsJob,
getGotoAction,
getJobName,
getKeepOperation,
getOperationIcon,
getPart,
getSchedulingRule,
getShell,
isKeepOneProgressServiceEntry,
isPostponeAutobuild,
isSameFamilyAs,
isUserInitiated,
run,
shouldRun
|
Methods inherited from class java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
ModelOperation
protected ModelOperation(
IWorkbenchPart part,
ISynchronizationScopeManager manager)
- Create a model operation that operates on the given scope.
-
Parameters:
-
part
- the workbench part from which the merge was launched or null
-
manager
- the scope manager for this operation
sortByExtension
public static
ModelProvider[] sortByExtension(
ModelProvider[] providers)
- Return the list of provides sorted by their extends relationship.
Extended model providers will appear later in the list then those
that extends them. The order of model providers that independant
(i.e. no extends relationship between them) will be indeterminate.
-
-
Parameters:
-
providers
- the model providers
-
Returns:
- the list of provides sorted by their extends relationship
run
public final void run(
IProgressMonitor monitor)
throws
InvocationTargetException,
InterruptedException
- Run the operation. This method first ensures that the scope is built
by calling
initializeScope(IProgressMonitor)
and then invokes the
execute(IProgressMonitor)
method.
-
-
Parameters:
-
monitor
- a progress monitor
-
Throws:
-
InvocationTargetException
- if the run method must propagate a checked exception,
it should wrap it inside an InvocationTargetException
; runtime exceptions are automatically
wrapped in an InvocationTargetException
by the calling context
-
InterruptedException
- if the operation detects a request to cancel,
using IProgressMonitor.isCanceled()
, it should exit by throwing
InterruptedException
-
See Also:
-
IRunnableWithProgress.run(org.eclipse.core.runtime.IProgressMonitor)
beginOperation
protected void beginOperation(
IProgressMonitor monitor)
throws
InvocationTargetException
- Method called from
run(IProgressMonitor)
before
the
execute(IProgressMonitor)
method is invoked.
This is done to give the operation a chance to initialize
any state required to execute. By default, the
ISynchronizationScopeManager
for this operation
is initialized if it was not previously initialized.
-
-
Parameters:
-
monitor
- a progress monitor
-
Throws:
-
InvocationTargetException
endOperation
protected void endOperation(
IProgressMonitor monitor)
throws
InvocationTargetException
- Method called from
run(IProgressMonitor)
after the
execute(IProgressMonitor)
completes of if an exception
is thrown from the
beginOperation(IProgressMonitor)
or the
execute(IProgressMonitor)
. By default,
this method does nothing. Subclasses may override.
-
-
Parameters:
-
monitor
- a progress monitor
-
Throws:
-
InvocationTargetException
initializeScope
protected final void initializeScope(
IProgressMonitor monitor)
throws
InvocationTargetException
- Adjust the input of the operation according to the selected
resource mappings and the set of interested participants. This method
will prompt the user in the following cases:
- The scope contains additional resources than those in the input.
- The scope has additional mappings from a model in the input
- The input contains elements from multiple models
The scope of this operation will only be prepared once. Subsequent
calls to this method will do nothing. Also, if the scope was provided
as an argument to a constructor, this method will do nothing (i.e. the
scope will not be prepared again and no prompting will occur).
Subclasses can customize how the scope is generated by overriding
the
getScopeManager()
to return a custom scope manager.
-
-
Parameters:
-
monitor
- a progress monitor
-
Throws:
-
InvocationTargetException
promptIfInputChange
protected void promptIfInputChange(
IProgressMonitor monitor)
- Prompt the user by calling
promptForInputChange(String, IProgressMonitor)
if the scope of the operation was expanded (as described in
initializeScope(IProgressMonitor)
).
-
-
Parameters:
-
monitor
- a progress monitor
getPreviewRequestMessage
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.
By default, null
is returned but subclasses may override.
-
-
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
promptForInputChange
protected boolean promptForInputChange(
String requestPreviewMessage,
IProgressMonitor monitor)
- Prompt the user to inform them that additional resource mappings
have been included in the operations.
-
-
Parameters:
-
requestPreviewMessage
- message to be displayed for the option to force a preview
(or null
if the preview option should not be presented -
monitor
- a progress monitor
-
Returns:
- whether a preview of the operation results was requested
-
Throws:
-
OperationCanceledException
- if the user choose to cancel
getContext
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.
By default, the method always returns null
. Subclasses may override.
-
-
Returns:
- the synchronization context for the operation or
null
execute
protected abstract void execute(
IProgressMonitor monitor)
throws
InvocationTargetException,
InterruptedException
- Execute the operation. This method is invoked after the
scope has been generated.
-
-
Parameters:
-
monitor
- a progress monitor
-
Throws:
-
InvocationTargetException
-
InterruptedException
getScope
public
ISynchronizationScope getScope()
- Return the scope of this operation.
-
-
Returns:
- the scope of this operation
isPreviewRequested
public boolean isPreviewRequested()
- Return whether a preview of the operation before it is performed is
desired.
-
-
Returns:
- whether a preview of the operation before it is performed is
desired
getScopeManager
protected
ISynchronizationScopeManager getScopeManager()
- Return the scope manager for this operation.
-
-
Returns:
- the scope manager for this operation.
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.