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
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.
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.
- See Also:
-
Field Summary
Fields inherited from interface org.eclipse.compare.ITypedElement
FOLDER_TYPE, TEXT_TYPE, UNKNOWN_TYPE -
Constructor Summary
ConstructorsConstructorDescriptionDiffNode(int kind) Creates a newDiffNodewith the given diff kind.DiffNode(int kind, ITypedElement ancestor, ITypedElement left, ITypedElement right) Creates a newDiffNodeand initializes with the given values.DiffNode(ITypedElement left, ITypedElement right) Creates a newDiffNodewith diff kindDifferencer.CHANGEand initializes with the given values.DiffNode(IDiffContainer parent, int kind) Creates a newDiffNodeand initializes with the given values.DiffNode(IDiffContainer parent, int kind, ITypedElement ancestor, ITypedElement left, ITypedElement right) Creates a newDiffNodeand initializes with the given values. -
Method Summary
Modifier and TypeMethodDescriptionvoidRegisters a listener for changes of thisICompareInput.voidcopy(boolean leftToRight) Copy one side (source) to the other side (destination) depending on the value ofleftToRight.booleanReturnstrueif this node shouldn't automatically be expanded in aDiffTreeViewer.booleanprotected voidSends out notification that a change has occurred on theICompareInput.Returns the ancestor side of this input.getId()Returns the first not-nullinput of this node.getImage()TheDiffElementimplementation of thisITypedInputmethod returnsnull.getLeft()Returns the left side of this input.getName()Returns the (non-null) name of the left or right side if they are identical.getRight()Returns the right side of this input.getType()TheDiffElementimplementation of thisITypedElementmethod returnsITypedElement.UNKNOWN_TYPE.inthashCode()voidUnregisters aICompareInputlistener.voidsetAncestor(ITypedElement ancestor) Sets the ancestor input to the given value.voidsetDontExpand(boolean dontExpand) Controls whether this node is not automatically expanded when displayed in aDiffTreeViewer.voidsetLeft(ITypedElement left) Sets the left input to the given value.voidsetRight(ITypedElement right) Sets the right input to the given value.Methods inherited from class org.eclipse.compare.structuremergeviewer.DiffContainer
add, findChild, getChildren, hasChildren, remove, removeToRootMethods inherited from class org.eclipse.compare.structuremergeviewer.DiffElement
getKind, getParent, setKind, setParentMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.compare.structuremergeviewer.ICompareInput
getKindMethods inherited from interface org.eclipse.compare.structuremergeviewer.IDiffElement
getKind, getParent, setParent
-
Constructor Details
-
DiffNode
public DiffNode(IDiffContainer parent, int kind, ITypedElement ancestor, ITypedElement left, ITypedElement right) Creates a newDiffNodeand initializes with the given values.- Parameters:
parent- under which the new container is added as a child ornullkind- of difference (defined inDifferencer)ancestor- the common ancestor input to a compareleft- the left input to a compareright- the right input to a compare
-
DiffNode
Creates a newDiffNodewith diff kindDifferencer.CHANGEand initializes with the given values.- Parameters:
left- the left input to a compareright- the right input to a compare
-
DiffNode
Creates a newDiffNodeand initializes with the given values.- Parameters:
kind- of difference (defined inDifferencer)ancestor- the common ancestor input to a compareleft- the left input to a compareright- the right input to a compare
-
DiffNode
public DiffNode(int kind) Creates a newDiffNodewith the given diff kind.- Parameters:
kind- of difference (defined inDifferencer)
-
DiffNode
Creates a newDiffNodeand initializes with the given values.- Parameters:
parent- under which the new container is added as a child ornullkind- of difference (defined inDifferencer)
-
-
Method Details
-
addCompareInputChangeListener
Registers a listener for changes of thisICompareInput. Has no effect if an identical listener is already registered.- Specified by:
addCompareInputChangeListenerin interfaceICompareInput- Parameters:
listener- the listener to add
-
removeCompareInputChangeListener
Unregisters aICompareInputlistener. Has no effect if listener is not registered.- Specified by:
removeCompareInputChangeListenerin interfaceICompareInput- Parameters:
listener- the listener to remove
-
fireChange
protected void fireChange()Sends out notification that a change has occurred on theICompareInput. -
dontExpand
public boolean dontExpand()Returnstrueif this node shouldn't automatically be expanded in aDiffTreeViewer.- Returns:
trueif node shouldn't automatically be expanded
-
setDontExpand
public void setDontExpand(boolean dontExpand) Controls whether this node is not automatically expanded when displayed in aDiffTreeViewer.- Parameters:
dontExpand- iftruethis node is not automatically expanded inDiffTreeViewer
-
getId
Returns the first not-nullinput of this node. Method checks the three inputs in the order: ancestor, right, left.- Returns:
- the first not-
nullinput of this node
-
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:
getNamein interfaceICompareInput- Specified by:
getNamein interfaceITypedElement- Returns:
- the name of this node.
-
getImage
Description copied from class:DiffElementTheDiffElementimplementation of thisITypedInputmethod returnsnull. Subclasses may re-implement to provide an image for this element.- Specified by:
getImagein interfaceICompareInput- Specified by:
getImagein interfaceITypedElement- Overrides:
getImagein classDiffElement- Returns:
null.
-
getType
Description copied from class:DiffElementTheDiffElementimplementation of thisITypedElementmethod returnsITypedElement.UNKNOWN_TYPE. Subclasses may re-implement to provide a type for this element.- Specified by:
getTypein interfaceITypedElement- Overrides:
getTypein classDiffElement- Returns:
ITypedElement.UNKNOWN_TYPE.
-
setAncestor
Sets the ancestor input to the given value.- Parameters:
ancestor- the new value for the ancestor input- Since:
- 3.0
-
getAncestor
Description copied from interface:ICompareInputReturns the ancestor side of this input. Returnsnullif this input has no ancestor or in the two-way compare case.- Specified by:
getAncestorin interfaceICompareInput- Returns:
- the ancestor of this input, or
null
-
setLeft
Sets the left input to the given value.- Parameters:
left- the new value for the left input
-
getLeft
Description copied from interface:ICompareInputReturns the left side of this input. Returnsnullif there is no left side (deletion or addition).- Specified by:
getLeftin interfaceICompareInput- Returns:
- the left side of this input, or
null
-
setRight
Sets the right input to the given value.- Parameters:
right- the new value for the right input
-
getRight
Description copied from interface:ICompareInputReturns the right side of this input. Returnsnullif there is no right side (deletion or addition).- Specified by:
getRightin interfaceICompareInput- Returns:
- the right side of this input, or
null
-
copy
public void copy(boolean leftToRight) Description copied from interface:ICompareInputCopy one side (source) to the other side (destination) depending on the value ofleftToRight. 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
nullthe destination must be deleted, -
if the destination is
nullthe destination must be created and filled with the contents from the source, -
if both sides are non-
nullthe contents of source must be copied to destination.
ICompareInputChangeListener.- Specified by:
copyin interfaceICompareInput- Parameters:
leftToRight- iftruethe left side is copied to the right side. Iffalsethe right side is copied to the left side
-
if the source side is
-
hashCode
public int hashCode() -
equals
-