public interface IStructureCreator
IStructureComparators 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:
IStructureCreatorto 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
IStructureCreatorto map a path back to a range of characters in the textual representation.
IStructureCreatorprovides 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.
|Modifier and Type||Method and Description|
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).
Returns a descriptive name which can be used in the UI of the
Creates a tree structure consisting of
Creates the single node specified by path from the given input object.
Called whenever a copy operation has been performed on a tree node.
IStructureComparator getStructure(Object input)
IStructureComparators 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
input- the object from which to create the tree of
nullin case of error
IStructureComparator locate(Object path, Object input)
nullis returned. This method is similar to
getStructurebut in contrast to
getStructureonly a single node without any children must be returned. This method is used in the
ReplaceWithEditionDialogto 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
to build the full tree, and then finding that node within the tree that is specified
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
ReplaceWithEditionDialog and will receive this value unchanged
as an argument to
path- specifies a sub object within the input object
input- the object from which to create the
trueall character sequences considered whitespace should be removed from the returned string.
node- the node for which to return a string representation
truethe returned string should not contain whitespace
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.