public class DiffNode extends DiffContainer implements ITypedElement, ICompareInput
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.
DiffNodes 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.
DiffTreeViewer,
DifferencerFOLDER_TYPE, TEXT_TYPE, UNKNOWN_TYPE| Constructor and Description |
|---|
DiffNode(IDiffContainer parent,
int kind)
Creates a new
DiffNode and initializes with the given values. |
DiffNode(IDiffContainer parent,
int kind,
ITypedElement ancestor,
ITypedElement left,
ITypedElement right)
Creates a new
DiffNode and initializes with the given values. |
DiffNode(int kind)
Creates a new
DiffNode with the given diff kind. |
DiffNode(int kind,
ITypedElement ancestor,
ITypedElement left,
ITypedElement right)
Creates a new
DiffNode and initializes with the given values. |
DiffNode(ITypedElement left,
ITypedElement right)
Creates a new
DiffNode with diff kind Differencer.CHANGE
and initializes with the given values. |
| Modifier and Type | Method and Description |
|---|---|
void |
addCompareInputChangeListener(ICompareInputChangeListener listener)
Registers a listener for changes of this
ICompareInput. |
void |
copy(boolean leftToRight)
Copy one side (source) to the other side (destination) depending on the
value of
leftToRight. |
boolean |
dontExpand()
Returns
true if this node shouldn't automatically be expanded in
a DiffTreeViewer. |
boolean |
equals(Object other) |
protected void |
fireChange()
Sends out notification that a change has occurred on the
ICompareInput. |
ITypedElement |
getAncestor()
Returns the ancestor side of this input.
|
ITypedElement |
getId()
Returns the first not-
null input of this node. |
Image |
getImage()
The
DiffElement implementation of this ITypedInput
method returns null. |
ITypedElement |
getLeft()
Returns the left side of this input.
|
String |
getName()
Returns the (non-
null) name of the left or right side if they are identical. |
ITypedElement |
getRight()
Returns the right side of this input.
|
String |
getType()
The
DiffElement implementation of this ITypedElement
method returns ITypedElement.UNKNOWN_TYPE. |
int |
hashCode() |
void |
removeCompareInputChangeListener(ICompareInputChangeListener listener)
Unregisters a
ICompareInput listener. |
void |
setAncestor(ITypedElement ancestor)
Sets the ancestor input to the given value.
|
void |
setDontExpand(boolean dontExpand)
Controls whether this node is not automatically expanded when displayed in
a DiffTreeViewer.
|
void |
setLeft(ITypedElement left)
Sets the left input to the given value.
|
void |
setRight(ITypedElement right)
Sets the right input to the given value.
|
add, findChild, getChildren, hasChildren, remove, removeToRootgetKind, getParent, setKind, setParentclone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitgetKindgetKind, getParent, setParentpublic DiffNode(IDiffContainer parent, int kind, ITypedElement ancestor, ITypedElement left, ITypedElement right)
DiffNode and initializes with the given values.parent - under which the new container is added as a child or nullkind - of difference (defined in Differencer)ancestor - the common ancestor input to a compareleft - the left input to a compareright - the right input to a comparepublic DiffNode(ITypedElement left, ITypedElement right)
DiffNode with diff kind Differencer.CHANGE
and initializes with the given values.left - the left input to a compareright - the right input to a comparepublic DiffNode(int kind,
ITypedElement ancestor,
ITypedElement left,
ITypedElement right)
DiffNode and initializes with the given values.kind - of difference (defined in Differencer)ancestor - the common ancestor input to a compareleft - the left input to a compareright - the right input to a comparepublic DiffNode(int kind)
DiffNode with the given diff kind.kind - of difference (defined in Differencer)public DiffNode(IDiffContainer parent, int kind)
DiffNode and initializes with the given values.parent - under which the new container is added as a child or nullkind - of difference (defined in Differencer)public void addCompareInputChangeListener(ICompareInputChangeListener listener)
ICompareInput.
Has no effect if an identical listener is already registered.addCompareInputChangeListener in interface ICompareInputlistener - the listener to addpublic void removeCompareInputChangeListener(ICompareInputChangeListener listener)
ICompareInput listener.
Has no effect if listener is not registered.removeCompareInputChangeListener in interface ICompareInputlistener - the listener to removeprotected void fireChange()
ICompareInput.public boolean dontExpand()
true if this node shouldn't automatically be expanded in
a DiffTreeViewer.true if node shouldn't automatically be expandedpublic void setDontExpand(boolean dontExpand)
dontExpand - if true this node is not automatically expanded in DiffTreeViewerpublic ITypedElement getId()
null input of this node.
Method checks the three inputs in the order: ancestor, right, left.null input of this nodepublic String getName()
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.
getName in interface ITypedElementgetName in interface ICompareInputpublic Image getImage()
DiffElementDiffElement implementation of this ITypedInput
method returns null. Subclasses may re-implement to provide
an image for this element.getImage in interface ITypedElementgetImage in interface ICompareInputgetImage in class DiffElementnull.public String getType()
DiffElementDiffElement implementation of this ITypedElement
method returns ITypedElement.UNKNOWN_TYPE. Subclasses may
re-implement to provide a type for this element.getType in interface ITypedElementgetType in class DiffElementITypedElement.UNKNOWN_TYPE.public void setAncestor(ITypedElement ancestor)
ancestor - the new value for the ancestor inputpublic ITypedElement getAncestor()
ICompareInputnull if this input has no ancestor
or in the two-way compare case.getAncestor in interface ICompareInputnullpublic void setLeft(ITypedElement left)
left - the new value for the left inputpublic ITypedElement getLeft()
ICompareInputnull if there is no left side (deletion or addition).getLeft in interface ICompareInputnullpublic void setRight(ITypedElement right)
right - the new value for the right inputpublic ITypedElement getRight()
ICompareInputnull if there is no right side (deletion or addition).getRight in interface ICompareInputnullpublic void copy(boolean leftToRight)
ICompareInputleftToRight. 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:
null the destination must be deleted,
null the destination must be created
and filled with the contents from the source,
null the contents of source must be copied to destination.
ICompareInputChangeListener.copy in interface ICompareInputleftToRight - if true the left side is copied to the right side.
If false the right side is copied to the left sideGuidelines for using Eclipse APIs. Copyright (c) IBM Corp. and others 2000, 2006. All rights reserved.