Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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:
  ICompareInput, IDiffContainer, IDiffElement, ITypedElement

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`

Field Summary

Fields inherited from interface org.eclipse.compare.ITypedElement
`FOLDER_TYPE, TEXT_TYPE, UNKNOWN_TYPE`

Constructor Summary
`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.

Method Summary
`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 occured 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()` Returns an image for this object.
`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()` Returns the type of this object.
`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.

Methods inherited from class org.eclipse.compare.structuremergeviewer.DiffContainer
`add, findChild, getChildren, hasChildren, remove, removeToRoot`

Methods inherited from class org.eclipse.compare.structuremergeviewer.DiffElement
`getKind, getParent, setKind, setParent`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.eclipse.compare.structuremergeviewer.ICompareInput
`getKind`

Methods inherited from interface org.eclipse.compare.structuremergeviewer.IDiffElement
`getKind, getParent, setParent`

Constructor Detail

### 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`)

Method Detail

### 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 occured 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`
  Returns:
    the name of this object

### getImage

    public Image getImage()

  Description copied from interface: `ITypedElement`
  Returns an image for this object. This image is used when displaying this object in the UI.

  Specified by:
    `getImage` in interface `ITypedElement`
  Overrides:
    `getImage` in class `DiffElement`

### getType

    public String getType()

  Description copied from interface: `ITypedElement`
  Returns the type of this object. For objects with a file name this is typically the file extension. For folders its the constant `FOLDER_TYPE`. The type is used for determining a suitable viewer for this object.

  Specified by:
    `getType` in interface `ITypedElement`
  Overrides:
    `getType` in class `DiffElement`

### 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()

### equals

    public boolean equals(Object other)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.