org.eclipse.team.core.mapping
Interface IStorageMerger
-
All Known Implementing Classes:
-
DelegatingStorageMerger
-
public interface IStorageMerger
This interface defines a single operation for performing a three-way merge on three
instances of
IStorage. The merged result is written to an output stream.
Clients must implement this interface when contributing new mergers to the
org.eclipse.team.core.storageMergers extension point.
-
Since:
- 3.2
|
Field Summary
|
static int
|
CONFLICT
Indicates that a change conflict prevented the merge from successful completion (value 1) |
static int
|
INTERNAL_ERROR
Status code describing an internal error (value 2) |
static int
|
OK
Indicates the successful completion of the merge operation (value IStatus.OK) |
static int
|
UNSUPPORTED_ENCODING
Indicates that at least one of the encodings associated with the input was unsupported (value 3) |
OK
static final int OK
- Indicates the successful completion of the merge operation (value
IStatus.OK)
-
See Also:
-
Constant Field Values
CONFLICT
static final int CONFLICT
- Indicates that a change conflict prevented the merge from successful completion (value
1)
-
See Also:
-
Constant Field Values
INTERNAL_ERROR
static final int INTERNAL_ERROR
- Status code describing an internal error (value
2)
-
See Also:
-
Constant Field Values
UNSUPPORTED_ENCODING
static final int UNSUPPORTED_ENCODING
- Indicates that at least one of the encodings associated with the input was unsupported (value
3)
-
See Also:
-
Constant Field Values
merge
IStatus merge(
OutputStream output,
String outputEncoding,
IStorage ancestor,
IStorage target,
IStorage other,
IProgressMonitor monitor)
throws
CoreException
- Performs a merge operation on the given storage instances and writes the merge result to the output stream.
On success a status
IStatus.OK is returned, on error a status IStatus.ERROR.
If the merge operation cannot deal with conflicts, the code of the error status has the value IStreamMerger.CONFLICT.
For text oriented mergers the encoding for the input and output is honored if they implement
IEncodedStorage.
It is the responsibility of callers to close the output stream.
The provided ancestor may be null if this merger
returns true from
canMergeWithoutAncestor().
-
-
Parameters:
-
output - the byte stream to which the merge result is written; the merger will not close the stream -
outputEncoding - the encoding to use when writing to the output stream -
ancestor - the storage from which the common ancestor is read -
target - the storage containing the target of the merge -
other - the storage containing the target of the merge -
monitor - reports progress of the merge operation
-
Returns:
- returns the completion status of the operation
-
Throws:
-
CoreException
- if an error occurs
canMergeWithoutAncestor
boolean canMergeWithoutAncestor()
- Return whether this merger can merge the two contributors
without an ancestor. This is typically not possible but may be
for some file types (for instances, files that contain a
timestamp based list of events).
-
-
Returns:
- whether this merger can merge the two contributors
without an ancestor
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.