Class TwoWayDiff

java.lang.Object
org.eclipse.team.core.diff.provider.Diff
org.eclipse.team.core.diff.provider.TwoWayDiff
All Implemented Interfaces:
IDiff, ITwoWayDiff
Direct Known Subclasses:
ResourceDiff

public class TwoWayDiff extends Diff implements ITwoWayDiff
Implementation of ITwoWayDiff. By default, this implementation returns null for the getFromPath() and getToPath(). Subclasses that support move diffs should override these methods.

This class may be subclassed by clients.

Since:
3.2
  • Field Details

    • FLAG_MASK

      protected static final int FLAG_MASK
      Constant (bit mask) that defines the area of the status that is reserved for use by this abstract class for encoding the flags of the diff. However, subclasses may include their own bits in the flag as long as they do not overlap with the bits in the FLAG_MASK
      See Also:
  • Constructor Details

    • TwoWayDiff

      public TwoWayDiff(IPath path, int kind, int flags)
      Create a two-way diff
      Parameters:
      path - the path of the model object that has changed
      kind - the kind of change
      flags - additional flags that describe the change
  • Method Details

    • getFlags

      public int getFlags()
      Description copied from interface: ITwoWayDiff
      Returns flags which describe in more detail how a object has been affected.

      The following codes (bit masks) are used when kind is CHANGE, and also when the object is involved in a move:

      • CONTENT - The bytes contained by the resource have been altered.
      • REPLACE - The object was deleted (either by a delete or move), and was subsequently re-created (either by a create, move, or copy).
      The following code is only used if kind is REMOVE (or CHANGE in conjunction with REPLACE):
      • MOVE_TO - The object has moved. getToPath will return the path of where it was moved to.
      The following code is only used if kind is ADD (or CHANGE in conjunction with REPLACE):
      • MOVE_FROM - The object has moved. getFromPath will return the path of where it was moved from.
      • COPY_FROM - The object has copied. getFromPath will return the path of where it was copied from.

      A simple move operation would result in the following diff information. If a object is moved from A to B (with no other changes to A or B), then A will have kind REMOVE, with flag MOVE_TO, and getToPath on A will return the path for B. B will have kind ADD, with flag MOVE_FROM, and getFromPath on B will return the path for A. B's other flags will describe any other changes to the resource, as compared to its previous location at A.

      Note that the move flags only describe the changes to a single object; they don't necessarily imply anything about the parent or children of the object. If the children were moved as a consequence of a subtree move operation, they will have corresponding move flags as well.

      Specified by:
      getFlags in interface ITwoWayDiff
      Returns:
      the flags
      See Also:
    • getToPath

      public IPath getToPath()
      Description copied from interface: ITwoWayDiff
      Returns the full path (in the "after" state) to which this resource (in the "before" state) was moved. This value is only valid if the MOVE_TO change flag is set; otherwise, null is returned.

      Note: the returned path never has a trailing separator.

      Specified by:
      getToPath in interface ITwoWayDiff
      Returns:
      a path, or null
      See Also:
    • getFromPath

      public IPath getFromPath()
      Description copied from interface: ITwoWayDiff
      Returns the full path (in the "before" state) from which this resource (in the "after" state) was moved. This value is only valid if the MOVE_FROM change flag is set; otherwise, null is returned.

      Note: the returned path never has a trailing separator.

      Specified by:
      getFromPath in interface ITwoWayDiff
      Returns:
      a path, or null
      See Also:
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Diff