Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoTree.java')
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoTree.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoTree.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoTree.java
index 353830cc6..2cf849a93 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoTree.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoTree.java
@@ -12,6 +12,7 @@ package org.eclipse.team.core.synchronize;
import java.util.*;
+import org.eclipse.core.internal.resources.mapping.ResourceTraversal;
import org.eclipse.core.resources.*;
import org.eclipse.core.runtime.*;
import org.eclipse.team.internal.core.Messages;
@@ -350,4 +351,29 @@ public class SyncInfoTree extends SyncInfoSet {
return (IResource[]) children.toArray(new IResource[children.size()]);
}
+ /**
+ * Return the sync info contained in this set that are contained
+ * in the given traversals.
+ * @param traversals the traversals
+ * @return the sync info contained in this set that are contained
+ * in the given traversals
+ * @since 3.2
+ */
+ public SyncInfo[] getSyncInfos(ResourceTraversal[] traversals) {
+ SyncInfoSet set = new SyncInfoSet();
+ for (int i = 0; i < traversals.length; i++) {
+ ResourceTraversal traversal = traversals[i];
+ IResource[] resources = traversal.getResources();
+ for (int j = 0; j < resources.length; j++) {
+ IResource resource = resources[j];
+ SyncInfo[] infos = getSyncInfos(resource, traversal.getDepth());
+ for (int k = 0; k < infos.length; k++) {
+ SyncInfo info = infos[k];
+ set.add(info);
+ }
+ }
+ }
+ return set.getSyncInfos();
+ }
+
}

Back to the top