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.