The DiffAlgorithm
and MergeAlgorithm
are used to provide the merge capabilities of this project.
Merge is useful when an OfficeDocument
is converted to a "Device" Document
format,
and the "Device" Document
version is modified.
Those changes can be merged back into the original
OfficeDocument
with the merger. The merger is capable
of doing this even if the "Device" format is lossy in
comparison to the OfficeDocument
format.
The DiffAlgorithm
generates a list of
Difference
objects that represent the
differences between two OfficeDocument
objects.
It is assumed that one is the original OfficeDocument
object and the other is a "lossy" version of the same
Document
with edits to be merged. Typically the
"lossy" version is created by converting a "Device"
Document
back into an OfficeDocument
.
The MergeAlgorithm
takes the Difference
objects as input, and creates a merged OfficeDocument
.
A merged OfficeDocument
has the following features:
OfficeDocument
that are not
supported in the device format are not altered or removed.
OfficeDocument
in the location determined by
the DiffAlgorithm
.
Each converter provides an implementation of the
{@link org.openoffice.xmerge.ConverterCapabilities
ConverterCapabilities} which specifies which
OfficeDocument
tags are supported for the
device format.