|
Eclipse Platform 2.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Interface used to create a hierarchical structure of
IStructureComparator
s for a given input object.
In addition, it provides methods for locating a path in the hierarchical structure
and to map a node of this structure back to the corresponding input object.
Structure creators are used in the following contexts:
StructureDiffViewer
uses an IStructureCreator
to
build two (or three) tree structures of its input elements (method getStructure
).
These trees are then compared with each other by means of the differencing engine and displayed
with the DiffTreeViewer
,
ReplaceWithEditionDialog
uses an IStructureCreator
to map a path back to a range of characters in the textual representation.
IStructureCreator
provides methods for rewriting the tree produced by the differencing
engine to support "smart" structural differencing. E.g. certain patterns of pairs of "addition"
and "deletion" nodes can be detected as renames and merged into a single node.
Clients may implement this interface; there is no standard implementation.
StructureDiffViewer
,
EditionSelectionDialog
,
Differencer
Method Summary | |
String |
getContents(Object node,
boolean ignoreWhitespace)
Returns the contents of the given node as a string for the purpose of performing a content comparison only (that is the string will not be visible in the UI). |
String |
getName()
Returns a descriptive name which can be used in the UI of the StructureDiffViewer . |
IStructureComparator |
getStructure(Object input)
Creates a tree structure consisting of IStructureComparator s
from the given object and returns its root object. |
IStructureComparator |
locate(Object path,
Object input)
Creates the single node specified by path from the given input object. |
void |
save(IStructureComparator node,
Object input)
Called whenever a copy operation has been performed on a tree node. |
Method Detail |
public String getName()
StructureDiffViewer
.
IStructureCreator
public IStructureComparator getStructure(Object input)
IStructureComparator
s
from the given object and returns its root object.
Implementing this method typically involves parsing the input object.
In case of an error (e.g. a parsing error) the value null
is returned.
input
- the object from which to create the tree of IStructureComparator
null
in case of errorpublic IStructureComparator locate(Object path, Object input)
null
is returned.
This method is similar to getStructure
but in
contrast to getStructure
only a single node without any children must be returned.
This method is used in the ReplaceWithEditionDialog
to locate a sub element
(e.g. a method) within an input object (e.g. a file containing source code).
One (not optimized) approach to implement this method is calling getStructure(input)
to build the full tree, and then finding that node within the tree that is specified
by path
.
The syntax of path
is not specified, because it is treated by the compare subsystem
as an opaque entity and is not further interpreted. Clients using this functionality
will pass a value of path
to the selectEdition
method of ReplaceWithEditionDialog
and will receive this value unchanged
as an argument to locate
.
path
- specifies a sub object within the input objectinput
- the object from which to create the IStructureComparator
path
or null
EditionSelectionDialog.selectEdition(org.eclipse.compare.ITypedElement, org.eclipse.compare.ITypedElement[], java.lang.Object)
public String getContents(Object node, boolean ignoreWhitespace)
ignoreWhitespace
is true
all character sequences considered
whitespace should be removed from the returned string.
node
- the node for which to return a string representationignoreWhitespace
- if true
the returned string should not contain whitespace
public void save(IStructureComparator node, Object input)
node
- the node for which to save the new contentinput
- the object from which the structure tree was created in getStructure
|
Eclipse Platform 2.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |