Class SyncInfoTree

java.lang.Object
org.eclipse.team.core.synchronize.SyncInfoSet
org.eclipse.team.core.synchronize.SyncInfoTree

public class SyncInfoTree extends SyncInfoSet
Provides addition API for accessing the SyncInfo in the set through their resource's hierarchical relationships.

Events fired from a SyncInfoTree will be instances of ISyncInfoTreeChangeEvent.

Since:
3.0
See Also:
  • Field Details

  • Constructor Details

    • SyncInfoTree

      public SyncInfoTree()
      Create an empty sync info tree.
    • SyncInfoTree

      public SyncInfoTree(SyncInfo[] infos)
      Create a sync info tree containing the given sync info elements.
      Parameters:
      infos - the sync info elements
  • Method Details

    • hasMembers

      public boolean hasMembers(IResource resource)
      Return whether the given resource has any children in the sync set. The children could be either out-of-sync resources that are contained by the set or containers that are ancestors of out-of-sync resources contained by the set.
      Parameters:
      resource - the resource to check for children.
      Returns:
      true if the resource has children in the set.
    • getSyncInfos

      public SyncInfo[] getSyncInfos(IResource resource, int depth)
      Return the SyncInfo for each out-of-sync resource in the subtree rooted at the given resource to the depth specified. The depth is one of:
      • IResource.DEPTH_ZERO: the resource only,
      • IResource.DEPTH_ONE: the resource or its direct children,
      • IResource.DEPTH_INFINITE: the resource and all of it's descendants.
      If the given resource is out of sync, it will be included in the result.

      The default implementation makes use of getSyncInfo(IResource), members(IResource) and getSyncInfos() to provide the varying depths. Subclasses may override to optimize.

      Parameters:
      resource - the root of the resource subtree
      depth - the depth of the subtree
      Returns:
      the SyncInfo for any out-of-sync resources
    • createEmptyChangeEvent

      protected SyncInfoSetChangeEvent createEmptyChangeEvent()
      Description copied from class: SyncInfoSet
      Create an empty change event. Subclass may override to provided specialized event types
      Overrides:
      createEmptyChangeEvent in class SyncInfoSet
      Returns:
      an empty change event
    • add

      public void add(SyncInfo info)
      Description copied from class: SyncInfoSet
      Add the given SyncInfo to the set. A change event will be generated unless the call to this method is nested in between calls to beginInput() and endInput(IProgressMonitor) in which case the event for this addition and any other sync set change will be fired in a batched event when endInput is invoked.

      Invoking this method outside of the above mentioned block will result in the endInput(IProgressMonitor) being invoked with a null progress monitor. If responsiveness is required, the client should always nest sync set modifications within beginInput/endInput.

      Overrides:
      add in class SyncInfoSet
      Parameters:
      info - the sync info to be added to this set.
    • remove

      public void remove(IResource resource)
      Description copied from class: SyncInfoSet
      Remove the given local resource from the set.
      Overrides:
      remove in class SyncInfoSet
      Parameters:
      resource - the local resource to remove
    • clear

      public void clear()
      Description copied from class: SyncInfoSet
      Reset the sync set so it is empty. Listeners are notified of the change.
      Overrides:
      clear in class SyncInfoSet
    • remove

      public void remove(IResource resource, int depth)
      Remove from this set the SyncInfo for the given resource and any of its descendants within the specified depth. The depth is one of:
      • IResource.DEPTH_ZERO: the resource only,
      • IResource.DEPTH_ONE: the resource or its direct children,
      • IResource.DEPTH_INFINITE: the resource and all of it's descendants.
      Parameters:
      resource - the root of the resource subtree
      depth - the depth of the subtree
    • internalGetOutOfSyncDescendants

      protected IResource[] internalGetOutOfSyncDescendants(IContainer resource)
      This is an internal method and is not intended to be invoked or overridden by clients.
    • members

      public IResource[] members(IResource resource)
      Return the immediate children of the given resource who are either out-of-sync or contain out-of-sync resources.
      Parameters:
      resource - the parent resource
      Returns:
      the children of the resource that are either out-of-sync or are ancestors of out-of-sync resources contained in the set