[EGIT PATCH 3/6] Adapt Git team operations to non-resouce objects

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sometimes structures in the workbench, such as in the Project Explorer
in the Java EE perspective, are not represented directly as resources,
but connect to resources. We use the IAdaptable interface to ask for
the underlying resource and the proceed as usual.

Signed-off-by: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx>
---
 .../org/spearce/egit/core/internal/UpdateJob.java  |    2 ++
 .../egit/core/op/AssumeUnchangedOperation.java     |    6 +++---
 .../egit/core/op/DisconnectProviderOperation.java  |    7 +++----
 .../org/spearce/egit/core/op/TrackOperation.java   |    6 +++---
 .../org/spearce/egit/core/op/UntrackOperation.java |    6 +++---
 5 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/org.spearce.egit.core/src/org/spearce/egit/core/internal/UpdateJob.java b/org.spearce.egit.core/src/org/spearce/egit/core/internal/UpdateJob.java
index 9641529..be1c591 100644
--- a/org.spearce.egit.core/src/org/spearce/egit/core/internal/UpdateJob.java
+++ b/org.spearce.egit.core/src/org/spearce/egit/core/internal/UpdateJob.java
@@ -21,6 +21,7 @@ import org.eclipse.core.resources.IResourceProxy;
 import org.eclipse.core.resources.IResourceProxyVisitor;
 import org.eclipse.core.resources.IResourceVisitor;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -65,6 +66,7 @@ public class UpdateJob extends Job {
 				final int[] count=new int[1];
 				long t0=System.currentTimeMillis();
 				for (Object obj : rsrcList) {
+					obj = ((IAdaptable)obj).getAdapter(IResource.class);
 					if (obj instanceof IContainer) {
 						((IContainer)obj).accept(new IResourceProxyVisitor() {
 							public boolean visit(IResourceProxy rp) throws CoreException {
diff --git a/org.spearce.egit.core/src/org/spearce/egit/core/op/AssumeUnchangedOperation.java b/org.spearce.egit.core/src/org/spearce/egit/core/op/AssumeUnchangedOperation.java
index 856ef3f..78a84bb 100644
--- a/org.spearce.egit.core/src/org/spearce/egit/core/op/AssumeUnchangedOperation.java
+++ b/org.spearce.egit.core/src/org/spearce/egit/core/op/AssumeUnchangedOperation.java
@@ -18,6 +18,7 @@ import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceVisitor;
 import org.eclipse.core.resources.IWorkspaceRunnable;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.spearce.egit.core.Activator;
@@ -51,9 +52,8 @@ public class AssumeUnchangedOperation implements IWorkspaceRunnable {
 		final IdentityHashMap<RepositoryMapping, Boolean> tomerge = new IdentityHashMap<RepositoryMapping, Boolean>();
 		m.beginTask(CoreText.AssumeUnchangedOperation_adding, rsrcList.size() * 200);
 		try {
-			final Iterator i = rsrcList.iterator();
-			while (i.hasNext()) {
-				final Object obj = i.next();
+			for (Object obj : rsrcList) {
+				obj = ((IAdaptable)obj).getAdapter(IResource.class);
 				if (obj instanceof IResource) {
 					final IResource toAssumeValid = (IResource)obj;
 					final RepositoryMapping rm = RepositoryMapping.getMapping(toAssumeValid);
diff --git a/org.spearce.egit.core/src/org/spearce/egit/core/op/DisconnectProviderOperation.java b/org.spearce.egit.core/src/org/spearce/egit/core/op/DisconnectProviderOperation.java
index 7fde335..b63c69b 100644
--- a/org.spearce.egit.core/src/org/spearce/egit/core/op/DisconnectProviderOperation.java
+++ b/org.spearce.egit.core/src/org/spearce/egit/core/op/DisconnectProviderOperation.java
@@ -8,13 +8,13 @@
 package org.spearce.egit.core.op;
 
 import java.util.Collection;
-import java.util.Iterator;
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspaceRunnable;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.SubProgressMonitor;
@@ -51,9 +51,8 @@ public class DisconnectProviderOperation implements IWorkspaceRunnable {
 		m.beginTask(CoreText.DisconnectProviderOperation_disconnecting,
 				projectList.size() * 200);
 		try {
-			final Iterator i = projectList.iterator();
-			while (i.hasNext()) {
-				final Object obj = i.next();
+			for (Object obj : projectList) {
+				obj = ((IAdaptable)obj).getAdapter(IResource.class);
 				if (obj instanceof IProject) {
 					final IProject p = (IProject) obj;
 
diff --git a/org.spearce.egit.core/src/org/spearce/egit/core/op/TrackOperation.java b/org.spearce.egit.core/src/org/spearce/egit/core/op/TrackOperation.java
index af16cdb..29b4344 100644
--- a/org.spearce.egit.core/src/org/spearce/egit/core/op/TrackOperation.java
+++ b/org.spearce.egit.core/src/org/spearce/egit/core/op/TrackOperation.java
@@ -21,6 +21,7 @@ import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceVisitor;
 import org.eclipse.core.resources.IWorkspaceRunnable;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.team.core.Team;
@@ -65,9 +66,8 @@ public class TrackOperation implements IWorkspaceRunnable {
 		final IdentityHashMap<RepositoryMapping, Boolean> tomerge = new IdentityHashMap<RepositoryMapping, Boolean>();
 		m.beginTask(CoreText.AddOperation_adding, rsrcList.size() * 200);
 		try {
-			final Iterator i = rsrcList.iterator();
-			while (i.hasNext()) {
-				final Object obj = i.next();
+			for (Object obj : rsrcList) {
+				obj = ((IAdaptable)obj).getAdapter(IResource.class);
 				if (obj instanceof IResource) {
 					final IResource toAdd = (IResource)obj;
 					final RepositoryMapping rm = RepositoryMapping.getMapping(toAdd);
diff --git a/org.spearce.egit.core/src/org/spearce/egit/core/op/UntrackOperation.java b/org.spearce.egit.core/src/org/spearce/egit/core/op/UntrackOperation.java
index fdc9c2e..369ff38 100644
--- a/org.spearce.egit.core/src/org/spearce/egit/core/op/UntrackOperation.java
+++ b/org.spearce.egit.core/src/org/spearce/egit/core/op/UntrackOperation.java
@@ -20,6 +20,7 @@ import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceVisitor;
 import org.eclipse.core.resources.IWorkspaceRunnable;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.spearce.egit.core.Activator;
@@ -62,9 +63,8 @@ public class UntrackOperation implements IWorkspaceRunnable {
 		final IdentityHashMap<RepositoryMapping, Boolean> tomerge = new IdentityHashMap<RepositoryMapping, Boolean>();
 		m.beginTask(CoreText.AddOperation_adding, rsrcList.size() * 200);
 		try {
-			final Iterator i = rsrcList.iterator();
-			while (i.hasNext()) {
-				final Object obj = i.next();
+			for (Object obj : rsrcList) {
+				obj = ((IAdaptable)obj).getAdapter(IResource.class);
 				if (obj instanceof IResource) {
 					final IResource toRemove = (IResource)obj;
 					final IProject p = toRemove.getProject();					
-- 
1.5.6.2.220.g44701

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux