Interface IModelResolver
- All Known Implementing Classes:
AbstractModelResolver
,ThreadedModelResolver
@Beta
public interface IModelResolver
This can be used in order to tell EMF Compare how the logical model of a given file can be resolved in its
entirety.
Clients can subclass AbstractModelResolver
instead.
- Since:
- 4.0
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canResolve
(org.eclipse.core.resources.IStorage sourceStorage) This will be used in order to determine whether this resolver can be used for the given storage.void
dispose()
This will be called when the contributing plugin of this class is about to be stopped.void
This will be called as soon as the class is created by the registry.resolveLocalModel
(org.eclipse.core.resources.IResource resource, org.eclipse.core.runtime.IProgressMonitor monitor) This will be called by Team in order to determine whether a given file can be compared alone, or if it needs to be compared along with others (and, thus, compared from the synchronize view).resolveLocalModels
(org.eclipse.core.resources.IResource left, org.eclipse.core.resources.IResource right, org.eclipse.core.resources.IResource origin, org.eclipse.core.runtime.IProgressMonitor monitor) Called by EMF Compare in order to resolve the logical models corresponding to the given IResources.resolveModels
(IStorageProviderAccessor storageAccessor, org.eclipse.core.resources.IStorage left, org.eclipse.core.resources.IStorage right, org.eclipse.core.resources.IStorage origin, org.eclipse.core.runtime.IProgressMonitor monitor) This will be called by EMF Compare in order to resolve the whole logical models containing the given storages.
-
Method Details
-
resolveLocalModels
SynchronizationModel resolveLocalModels(org.eclipse.core.resources.IResource left, org.eclipse.core.resources.IResource right, org.eclipse.core.resources.IResource origin, org.eclipse.core.runtime.IProgressMonitor monitor) throws InterruptedException Called by EMF Compare in order to resolve the logical models corresponding to the given IResources. Only local data is available.- Parameters:
left
- The file that will be considered as the "starting point" of the traversal to resolve as the left logical model.right
- "starting point" of the traversal to resolve as the right logical model.origin
- "starting point" of the traversal to resolve as the origin logical model (common ancestor of left and right). Can benull
.monitor
- Monitor on which to report progress to the user.- Returns:
- A traversal corresponding to all resources composing the given file's logical model.
- Throws:
InterruptedException
- Thrown if the resolution is cancelled or interrupted one way or another.
-
resolveModels
SynchronizationModel resolveModels(IStorageProviderAccessor storageAccessor, org.eclipse.core.resources.IStorage left, org.eclipse.core.resources.IStorage right, org.eclipse.core.resources.IStorage origin, org.eclipse.core.runtime.IProgressMonitor monitor) throws InterruptedException This will be called by EMF Compare in order to resolve the whole logical models containing the given storages. Since this may be either a local or remote model, all I/O should go through the given storage accessor.- Parameters:
storageAccessor
- The accessor that can be used to retrieve synchronization information between our resources.left
- The storage that will be considered as the "starting point" of the traversal to resolve as the left logical model.right
- "starting point" of the traversal to resolve as the right logical model.origin
- "starting point" of the traversal to resolve as the origin logical model (common ancestor of left and right). Can benull
.monitor
- Monitor on which to report progress to the user.- Returns:
- A traversal corresponding to all resources composing the given file's logical model.
- Throws:
InterruptedException
- Thrown if the resolution is cancelled or interrupted one way or another.
-
resolveLocalModel
StorageTraversal resolveLocalModel(org.eclipse.core.resources.IResource resource, org.eclipse.core.runtime.IProgressMonitor monitor) throws InterruptedException This will be called by Team in order to determine whether a given file can be compared alone, or if it needs to be compared along with others (and, thus, compared from the synchronize view). Note that only local data is available here.- Parameters:
resource
- The workspace resource for which we need a traversal.monitor
- Monitor on which to report progress to the user.- Returns:
- A traversal corresponding to all resources composing the given file's logical model.
- Throws:
InterruptedException
- Thrown if the resolution is cancelled or interrupted one way or another.
-
canResolve
boolean canResolve(org.eclipse.core.resources.IStorage sourceStorage) This will be used in order to determine whether this resolver can be used for the given storage. For each given storage, the resolver with the highest ranking will be selected for resolution. This test should be fast.- Parameters:
sourceStorage
- The resource we're trying to resolve the logical model of. This will always be the "source" or "left" variant of the compared resource.- Returns:
true
if this resolver is capable of handling the given storage,false
otherwise.
-
initialize
void initialize()This will be called as soon as the class is created by the registry. Clients can override if they need to set up their resolver for use. -
dispose
void dispose()This will be called when the contributing plugin of this class is about to be stopped. Clients can override to get rid of any state they've maintained within their resolver.
-