org.eclipse.compare.structuremergeviewer
Class DiffNode
java.lang.Object
org.eclipse.compare.structuremergeviewer.DiffElement
org.eclipse.compare.structuremergeviewer.DiffContainer
org.eclipse.compare.structuremergeviewer.DiffNode
-
All Implemented Interfaces:
-
ITypedElement,
ICompareInput,
IDiffContainer,
IDiffElement
-
public class DiffNode
- extends
DiffContainer
- implements
ITypedElement,
ICompareInput
Diff node are used as the compare result of the differencing engine.
Since it implements the ITypedElement
and ICompareInput
interfaces it can be used directly to display the
compare result in a DiffTreeViewer
and as the input to any other
compare/merge viewer.
DiffNode
s are typically created as the result of performing
a compare with the Differencer
.
Clients typically use this class as is, but may subclass if required.
-
See Also:
-
DiffTreeViewer
,
Differencer
DiffNode
public DiffNode(
IDiffContainer parent,
int kind,
ITypedElement ancestor,
ITypedElement left,
ITypedElement right)
- Creates a new
DiffNode
and initializes with the given values.
-
Parameters:
-
parent
- under which the new container is added as a child or null
-
kind
- of difference (defined in Differencer
) -
ancestor
- the common ancestor input to a compare -
left
- the left input to a compare -
right
- the right input to a compare
DiffNode
public DiffNode(
ITypedElement left,
ITypedElement right)
- Creates a new
DiffNode
with diff kind Differencer.CHANGE
and initializes with the given values.
-
Parameters:
-
left
- the left input to a compare -
right
- the right input to a compare
DiffNode
public DiffNode(int kind,
ITypedElement ancestor,
ITypedElement left,
ITypedElement right)
- Creates a new
DiffNode
and initializes with the given values.
-
Parameters:
-
kind
- of difference (defined in Differencer
) -
ancestor
- the common ancestor input to a compare -
left
- the left input to a compare -
right
- the right input to a compare
DiffNode
public DiffNode(int kind)
- Creates a new
DiffNode
with the given diff kind.
-
Parameters:
-
kind
- of difference (defined in Differencer
)
DiffNode
public DiffNode(
IDiffContainer parent,
int kind)
- Creates a new
DiffNode
and initializes with the given values.
-
Parameters:
-
parent
- under which the new container is added as a child or null
-
kind
- of difference (defined in Differencer
)
addCompareInputChangeListener
public void addCompareInputChangeListener(
ICompareInputChangeListener listener)
- Registers a listener for changes of this
ICompareInput
.
Has no effect if an identical listener is already registered.
-
-
Specified by:
-
addCompareInputChangeListener
in interface
ICompareInput
-
-
Parameters:
-
listener
- the listener to add
removeCompareInputChangeListener
public void removeCompareInputChangeListener(
ICompareInputChangeListener listener)
- Unregisters a
ICompareInput
listener.
Has no effect if listener is not registered.
-
-
Specified by:
-
removeCompareInputChangeListener
in interface
ICompareInput
-
-
Parameters:
-
listener
- the listener to remove
fireChange
protected void fireChange()
- Sends out notification that a change has occurred on the
ICompareInput
.
-
-
dontExpand
public boolean dontExpand()
- Returns
true
if this node shouldn't automatically be expanded in
a DiffTreeViewer.
-
-
-
Returns:
-
true
if node shouldn't automatically be expanded
setDontExpand
public void setDontExpand(boolean dontExpand)
- Controls whether this node is not automatically expanded when displayed in
a DiffTreeViewer.
-
-
-
Parameters:
-
dontExpand
- if true
this node is not automatically expanded in DiffTreeViewer
getId
public
ITypedElement getId()
- Returns the first not-
null
input of this node.
Method checks the three inputs in the order: ancestor, right, left.
-
-
-
Returns:
- the first not-
null
input of this node
getName
public
String getName()
- Returns the (non-
null
) name of the left or right side if they are identical.
Otherwise both names are concatenated (separated with a slash ('/')).
Subclasses may re-implement to provide a different name for this node.
-
-
Specified by:
-
getName
in interface
ITypedElement
-
Specified by:
-
getName
in interface
ICompareInput
-
-
Returns:
- the name of this node.
getImage
public
Image getImage()
-
Description copied from class:
DiffElement
- The
DiffElement
implementation of this ITypedInput
method returns null
. Subclasses may re-implement to provide
an image for this element.
-
-
Specified by:
-
getImage
in interface
ITypedElement
-
Specified by:
-
getImage
in interface
ICompareInput
-
Overrides:
-
getImage
in class
DiffElement
-
-
Returns:
-
null
.
getType
public
String getType()
-
Description copied from class:
DiffElement
- The
DiffElement
implementation of this ITypedElement
method returns ITypedElement.UNKNOWN_TYPE
. Subclasses may
re-implement to provide a type for this element.
-
-
Specified by:
-
getType
in interface
ITypedElement
-
Overrides:
-
getType
in class
DiffElement
-
-
Returns:
-
ITypedElement.UNKNOWN_TYPE
.
setAncestor
public void setAncestor(
ITypedElement ancestor)
- Sets the ancestor input to the given value.
-
-
-
Parameters:
-
ancestor
- the new value for the ancestor input -
Since:
- 3.0
getAncestor
public
ITypedElement getAncestor()
-
Description copied from interface:
ICompareInput
- Returns the ancestor side of this input.
Returns
null
if this input has no ancestor
or in the two-way compare case.
-
-
Specified by:
-
getAncestor
in interface
ICompareInput
-
-
Returns:
- the ancestor of this input, or
null
setLeft
public void setLeft(
ITypedElement left)
- Sets the left input to the given value.
-
-
-
Parameters:
-
left
- the new value for the left input
getLeft
public
ITypedElement getLeft()
-
Description copied from interface:
ICompareInput
- Returns the left side of this input.
Returns
null
if there is no left side (deletion or addition).
-
-
Specified by:
-
getLeft
in interface
ICompareInput
-
-
Returns:
- the left side of this input, or
null
setRight
public void setRight(
ITypedElement right)
- Sets the right input to the given value.
-
-
-
Parameters:
-
right
- the new value for the right input
getRight
public
ITypedElement getRight()
-
Description copied from interface:
ICompareInput
- Returns the right side of this input.
Returns
null
if there is no right side (deletion or addition).
-
-
Specified by:
-
getRight
in interface
ICompareInput
-
-
Returns:
- the right side of this input, or
null
copy
public void copy(boolean leftToRight)
-
Description copied from interface:
ICompareInput
- Copy one side (source) to the other side (destination) depending on the
value of
leftToRight
. This method is called from
a merge viewer if a corresponding action ("take left" or "take right")
has been pressed.
The implementation should handle the following cases:
-
if the source side is
null
the destination must be deleted,
-
if the destination is
null
the destination must be created
and filled with the contents from the source,
-
if both sides are non-
null
the contents of source must be copied to destination.
In addition the implementation should send out notification to the registered
ICompareInputChangeListener
.
-
-
Specified by:
-
copy
in interface
ICompareInput
-
-
Parameters:
-
leftToRight
- if true
the left side is copied to the right side.
If false
the right side is copied to the left side
hashCode
public int hashCode()
-
-
Overrides:
-
hashCode
in class
Object
-
equals
public boolean equals(
Object other)
-
-
Overrides:
-
equals
in class
Object
-
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.