See: Description
Interface | Description |
---|---|
ICompareInput |
Interface for objects used as input to a two-way or three-way compare viewer.
|
ICompareInputChangeListener |
Listener that gets informed if one (or more)
of the three sides of an
ICompareInput object changes its value. |
IDiffContainer |
IDiffContainer is a IDiffElement with children. |
IDiffElement |
An
IDiffElement is used in the DiffTreeViewer
to display the kind of change detected as the result of a two-way or three-way compare. |
IStructureComparator |
Interface used to compare hierarchical structures.
|
IStructureCreator |
Interface used to create a hierarchical structure of
IStructureComparator s for a given input object. |
IStructureCreator2 |
An extension to the
IStructureCreator interface that supports the
use of shared documents. |
Class | Description |
---|---|
DiffContainer |
The standard implementation of a diff container element.
|
DiffElement |
An abstract base implementation of the
IDiffElement interface. |
Differencer |
A generic two-way or three-way differencing engine.
|
DiffNode |
Diff node are used as the compare result of the differencing engine.
|
DiffTreeViewer |
A tree viewer that works on objects implementing
the
IDiffContainer and IDiffElement interfaces. |
DocumentRangeNode |
A document range node represents a structural element
when performing a structure compare of documents.
|
SharedDocumentAdapterWrapper |
An implementation of
ISharedDocumentAdapter that wraps another
shared document adapter. |
StructureCreator |
An
IStructureCreator2 that attempts to use an IDocumentProvider
to obtain a shared document for an ITypedElement . |
StructureDiffViewer |
A diff tree viewer that can be configured with a
IStructureCreator
to retrieve a hierarchical structure from the input object (an ICompareInput )
and perform a two-way or three-way compare on it. |
StructureRootNode |
A node that acts as the root of the tree returned from a
StructureCreator . |
If the input elements to the differencing engine implement the IStructureComparator interface the engine recursively applies itself to the children of the input element. Leaf elements must implement the org.eclipse.compare.IStreamContentAccessor interface so that the differencer can perform a bytewise comparison on their contents.
One good example for this is org.eclipse.compare.ResourceNode which implements both interfaces (and more) for Eclipse workspace resources (org.eclipse.core.resources.IResource).
Another example is the DocumentRangeNode which can be used to compare hierarchical structures
that are superimposed on a document, that is where nodes and leafs correspond to ranges in a document
(org.eclipse.compare.contentmergeviewer.IDocumentRange).
Typically DocumentRangeNodes are created while parsing a document and they represent
the semantic entities of the document (e.g. a Java class, method or field).
The two subclasses JavaNode (in org.eclipse.jdt.internal.ui.compare)
and PropertyNode (in org.eclipse.jdt.internal.ui.compare) are good examples for this.
By default the differencing engine returns the result of the compare operation as a tree of DiffNode objects. However, this can be changed by overriding a single method of the engine.
Every DiffNode describes the changes among the two or three inputs.
A tree of DiffNodes can be displayed in a DiffTreeViewer. The DiffTreeViewer requires that inner nodes of the tree implement the IDiffContainer interface and leafs the IDiffElement interface.
The typical steps to compare hierarchically structured data and to display the differences would be to:
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.