org.eclipse.ltk.ui.refactoring.model
Class AbstractResourceMappingMerger
java.lang.Object
org.eclipse.team.core.mapping.ResourceMappingMerger
org.eclipse.ltk.ui.refactoring.model.AbstractResourceMappingMerger
-
All Implemented Interfaces:
-
IResourceMappingMerger
-
public abstract class AbstractResourceMappingMerger
- extends
ResourceMappingMerger
Partial implementation of a refactoring-aware resource mapping merger.
This class provides support to determine pending refactorings during model
merging and model update, and displays a refactoring wizard to apply the
refactorings to the local workspace.
Note: this class is designed to be extended by clients. Programming language
implementers which need a refactoring-aware resource mapping merger to
associated with their model provider may extend this class to implement
language-specific project dependency rules.
-
Since:
- 3.2
-
See Also:
-
IResourceMappingMerger
Methods inherited from class java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
AbstractResourceMappingMerger
protected AbstractResourceMappingMerger(
ModelProvider provider)
- Creates a new abstract refactoring model merger.
-
Parameters:
-
provider
- the model provider
aboutToPerformMerge
protected
IStatus aboutToPerformMerge(
IMergeContext context,
IProgressMonitor monitor)
- Hook method which is called before the actual merge process happens.
Subclasses may extend this method to perform any special processing. The
default implementation checks whether there are any pending refactorings
in the merge context and displays a refactoring wizard to let the user
perform the pending refactorings before merge.
Returning a status of severity
IStatus.ERROR
will terminate the
merge process.
-
-
Parameters:
-
context
- the merge context -
monitor
- the progress monitor to use
-
Returns:
- a status describing the outcome of the operation
getDependencies
protected abstract
IProject[] getDependencies(
IProject[] projects)
- Returns the dependent projects of the projects associated with the
incoming refactorings.
Subclasses must implement this method to return the dependent projects
according to the semantics of the associated programming language. The
result of this method is used to decide whether the resource mapping
merger should execute the incoming refactorings in order to fix up
references in dependent projects.
-
-
Parameters:
-
projects
- the projects associated with the incoming refactorings in the
synchronization scope.
-
Returns:
- the dependent projects, or an empty array
getModelProvider
protected final
ModelProvider getModelProvider()
- Return the model provider associated with this merger.
-
-
Specified by:
-
getModelProvider
in class
ResourceMappingMerger
-
-
Returns:
- Return the model provider associated with this merger.
merge
public
IStatus merge(
IMergeContext context,
IProgressMonitor monitor)
throws
CoreException
- A default implementation of merge that attempts to merge all the mappings
in the context.
-
-
Specified by:
-
merge
in interface
IResourceMappingMerger
-
Overrides:
-
merge
in class
ResourceMappingMerger
-
-
Parameters:
-
context
- the context -
monitor
- a progress monitor
-
Returns:
- a status indicating whether the merge was successful
-
Throws:
-
CoreException
- if an error occurred -
See Also:
-
IResourceMappingMerger.merge(org.eclipse.team.core.mapping.IMergeContext, org.eclipse.core.runtime.IProgressMonitor)
mergePerformed
protected
IStatus mergePerformed(
IMergeContext context,
IProgressMonitor monitor)
- Hook method which is called after the actual merge process happened. This
method is only called if
merge(IMergeContext, IProgressMonitor)
returns a status with severity less than
IStatus.ERROR
and a
status code unequal to
IMergeStatus.CONFLICTS
or
IMergeStatus.INTERNAL_ERROR
.
Subclasses may extend this method to perform any special processing. The
default implementation does nothing.
-
-
Parameters:
-
context
- the merge context -
monitor
- the progress monitor to use
-
Returns:
- a status describing the outcome of the operation
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.