Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 


Eclipse Platform
Release 3.5

org.eclipse.team.ui.synchronize
Class ModelOperation

java.lang.Object
  extended by 

org.eclipse.core.runtime.jobs.JobChangeAdapter
      extended by 

org.eclipse.team.ui.TeamOperation
          extended by 
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

Constructor Summary
protected ModelOperation ( IWorkbenchPart part, ISynchronizationScopeManager manager)
          Create a model operation that operates on the given scope.
 
Method Summary
protected  void beginOperation ( IProgressMonitor monitor)
          Method called from run(IProgressMonitor) before the execute(IProgressMonitor) method is invoked.
protected  void endOperation ( IProgressMonitor monitor)
          Method called from run(IProgressMonitor) after the execute(IProgressMonitor) completes of if an exception is thrown from the beginOperation(IProgressMonitor) or the execute(IProgressMonitor).
protected abstract  void execute ( IProgressMonitor monitor)
          Execute the operation.
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.
  ISynchronizationScope getScope ()
          Return the scope of this operation.
protected   ISynchronizationScopeManager getScopeManager ()
          Return the scope manager for this operation.
protected  void initializeScope ( IProgressMonitor monitor)
          Adjust the input of the operation according to the selected resource mappings and the set of interested participants.
 boolean isPreviewRequested ()
          Return whether a preview of the operation before it is performed is desired.
protected  boolean promptForInputChange ( String requestPreviewMessage, IProgressMonitor monitor)
          Prompt the user to inform them that additional resource mappings have been included in the operations.
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)).
 void run ( IProgressMonitor monitor)
          Run the operation.
static  ModelProvider[] sortByExtension ( ModelProvider[] providers)
          Return the list of provides sorted by their extends relationship.
 
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 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
 

Constructor Detail

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
Method Detail

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:
  1. The scope contains additional resources than those in the input.
  2. The scope has additional mappings from a model in the input
  3. 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.

Eclipse Platform
Release 3.5

Guidelines for using Eclipse APIs.

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


 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire