Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2004-02-13 22:08:51 +0000
committerMichael Valenta2004-02-13 22:08:51 +0000
commitbadb69d9acdb1a3103032f4d4c13f79ec343d18a (patch)
tree4f6e9dc11604ea50b23ea08bdb372a8755216468
parent684b9d936e0ddc21921e6f5b7c0394caac70854e (diff)
downloadeclipse.platform.team-badb69d9acdb1a3103032f4d4c13f79ec343d18a.tar.gz
eclipse.platform.team-badb69d9acdb1a3103032f4d4c13f79ec343d18a.tar.xz
eclipse.platform.team-badb69d9acdb1a3103032f4d4c13f79ec343d18a.zip
Removed subscriber from SyncInfo
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISubscriberResourceComparator.java9
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/Subscriber.java11
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfo.java28
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoSet.java18
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/caches/SyncTreeSubscriber.java4
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSRevisionNumberCompareCriteria.java7
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncInfo.java8
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java13
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java2
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSubscriber.java5
-rw-r--r--tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSyncInfo.java2
12 files changed, 56 insertions, 53 deletions
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISubscriberResourceComparator.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISubscriberResourceComparator.java
index 986a61fb6..620b32d26 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISubscriberResourceComparator.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/ISubscriberResourceComparator.java
@@ -49,4 +49,13 @@ public interface ISubscriberResourceComparator {
* otherwise.
*/
public boolean compare(ISubscriberResource base, ISubscriberResource remote);
+
+ /**
+ * Answers <code>true</code> if the base tree is maintained by this
+ * subscriber. If the base tree is not considered than the subscriber can
+ * be considered as not supported three-way comparisons. Instead
+ * comparisons are made between the local and remote only without
+ * consideration for the base.
+ */
+ public boolean isThreeWay();
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/Subscriber.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/Subscriber.java
index e57021420..6cb83e442 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/Subscriber.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/Subscriber.java
@@ -176,16 +176,7 @@ abstract public class Subscriber {
* Returns the comparison criteria that will be used by the sync info
* created by this subscriber.
*/
- abstract public ISubscriberResourceComparator getDefaultComparisonCriteria();
-
- /**
- * Answers <code>true</code> if the base tree is maintained by this
- * subscriber. If the base tree is not considered than the subscriber can
- * be considered as not supported three-way comparisons. Instead
- * comparisons are made between the local and remote only without
- * consideration for the base.
- */
- abstract public boolean isThreeWay();
+ abstract public ISubscriberResourceComparator getResourceComparator();
/**
* Adds a listener to this team subscriber. Has no effect if an identical
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfo.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfo.java
index 30f832aba..dab8af1ad 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfo.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfo.java
@@ -140,18 +140,18 @@ public class SyncInfo implements IAdaptable {
private IResource local;
private ISubscriberResource base;
private ISubscriberResource remote;
- private Subscriber subscriber;
+ private ISubscriberResourceComparator comparator;
private int syncKind;
/**
* Construct a sync info object.
*/
- public SyncInfo(IResource local, ISubscriberResource base, ISubscriberResource remote, Subscriber subscriber) throws TeamException {
+ public SyncInfo(IResource local, ISubscriberResource base, ISubscriberResource remote, ISubscriberResourceComparator comparator) throws TeamException {
this.local = local;
this.base = base;
this.remote = remote;
- this.subscriber = subscriber;
+ this.comparator = comparator;
this.syncKind = calculateKind();
}
@@ -209,8 +209,8 @@ public class SyncInfo implements IAdaptable {
* Returns the subscriber that created and maintains this sync info
* object.
*/
- public Subscriber getSubscriber() {
- return subscriber;
+ public ISubscriberResourceComparator getComparator() {
+ return comparator;
}
/**
@@ -324,11 +324,9 @@ public class SyncInfo implements IAdaptable {
protected int calculateKind() throws TeamException {
int description = IN_SYNC;
- ISubscriberResourceComparator criteria = subscriber.getDefaultComparisonCriteria();
-
boolean localExists = local.exists();
- if (subscriber.isThreeWay()) {
+ if (comparator.isThreeWay()) {
if (base == null) {
if (remote == null) {
if (!localExists) {
@@ -341,7 +339,7 @@ public class SyncInfo implements IAdaptable {
description = INCOMING | ADDITION;
} else {
description = CONFLICTING | ADDITION;
- if (criteria.compare(local, remote)) {
+ if (comparator.compare(local, remote)) {
description |= PSEUDO_CONFLICT;
}
}
@@ -351,20 +349,20 @@ public class SyncInfo implements IAdaptable {
if (remote == null) {
description = CONFLICTING | DELETION | PSEUDO_CONFLICT;
} else {
- if (criteria.compare(base, remote))
+ if (comparator.compare(base, remote))
description = OUTGOING | DELETION;
else
description = CONFLICTING | CHANGE;
}
} else {
if (remote == null) {
- if (criteria.compare(local, base))
+ if (comparator.compare(local, base))
description = INCOMING | DELETION;
else
description = CONFLICTING | CHANGE;
} else {
- boolean ay = criteria.compare(local, base);
- boolean am = criteria.compare(base, remote);
+ boolean ay = comparator.compare(local, base);
+ boolean am = comparator.compare(base, remote);
if (ay && am) {
// in-sync
} else if (ay && !am) {
@@ -372,7 +370,7 @@ public class SyncInfo implements IAdaptable {
} else if (!ay && am) {
description = OUTGOING | CHANGE;
} else {
- if(! criteria.compare(local, remote)) {
+ if(! comparator.compare(local, remote)) {
description = CONFLICTING | CHANGE;
}
}
@@ -391,7 +389,7 @@ public class SyncInfo implements IAdaptable {
if (!localExists) {
description= ADDITION;
} else {
- if (! criteria.compare(local, remote))
+ if (! comparator.compare(local, remote))
description= CHANGE;
}
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoSet.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoSet.java
index bcbc9de25..bc468790a 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoSet.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SyncInfoSet.java
@@ -21,19 +21,11 @@ import org.eclipse.team.internal.core.subscribers.SyncInfoStatistics;
import org.eclipse.team.internal.core.subscribers.SyncSetChangedEvent;
/**
- * A potentially dynamic collection of {@link SyncInfo} objects that provides
- * several methods for accessing the out-of-sync resources contained in the set.
- * This class defines the API for accessing the contents of a sync info set.
- * Subclasses, such as {@link MutableSyncInfoSet}, can override to support
- * modification.
- * <p>
- * This class provides access to the sync set contents to clients and provides modification
- * operations to subclasses. In addition, this class defines the protocol for registering
- * and deregistering change listeners but it is up to subclasses to record changes and
- * notify any listeners about changes.
- *
- * </p>
- * @see MutableSyncInfoSet
+ * A dynamic collection of {@link SyncInfo} objects that provides
+ * change notification to registered listeners. Batching of change notifications
+ * can be accomplished using the <code>beginInput/endInput</code> methods or
+ * the <code>run</code> method.
+ * @see SyncInfoTree
* @since 3.0
*/
public class SyncInfoSet {
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/caches/SyncTreeSubscriber.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/caches/SyncTreeSubscriber.java
index 2df10c7ec..9c71485e4 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/caches/SyncTreeSubscriber.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/caches/SyncTreeSubscriber.java
@@ -41,7 +41,7 @@ public abstract class SyncTreeSubscriber extends Subscriber {
if (!isSupervised(resource)) return null;
ISubscriberResource remoteResource = getRemoteResource(resource);
ISubscriberResource baseResource;
- if (isThreeWay()) {
+ if (getResourceComparator().isThreeWay()) {
baseResource= getBaseResource(resource);
} else {
baseResource = null;
@@ -59,7 +59,7 @@ public abstract class SyncTreeSubscriber extends Subscriber {
* @return
*/
protected SyncInfo getSyncInfo(IResource local, ISubscriberResource base, ISubscriberResource remote) throws TeamException {
- return new SyncInfo(local, base, remote, this);
+ return new SyncInfo(local, base, remote, this.getResourceComparator());
}
public IResource[] members(IResource resource) throws TeamException {
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSRevisionNumberCompareCriteria.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSRevisionNumberCompareCriteria.java
index fa4711ec2..83fe64970 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSRevisionNumberCompareCriteria.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSRevisionNumberCompareCriteria.java
@@ -87,4 +87,11 @@ import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
public boolean compare(ISubscriberResource base, ISubscriberResource remote) {
return compare((ICVSRemoteResource)base, (ICVSRemoteResource)remote);
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.core.subscribers.ISubscriberResourceComparator#isThreeWay()
+ */
+ public boolean isThreeWay() {
+ return true;
+ }
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncInfo.java
index a9a4a5dda..d3e558f1f 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncInfo.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncInfo.java
@@ -35,11 +35,17 @@ public class CVSSyncInfo extends SyncInfo {
private static final int PARENT_NOT_MANAGED = 3;
private static final int REMOTE_DOES_NOT_EXIST = 4;
private static final int SYNC_INFO_CONFLICTS = 5;
+ private Subscriber subscriber;
public CVSSyncInfo(IResource local, ISubscriberResource base, ISubscriberResource remote, Subscriber subscriber) throws TeamException {
- super(local, base, remote, subscriber);
+ super(local, base, remote, subscriber.getResourceComparator());
+ this.subscriber = subscriber;
}
+ public Subscriber getSubscriber() {
+ return subscriber;
+ }
+
/* (non-Javadoc)
* @see org.eclipse.team.core.sync.SyncInfo#computeSyncKind(org.eclipse.core.runtime.IProgressMonitor)
*/
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java
index 7b280d4bf..031aabe2e 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java
@@ -76,6 +76,10 @@ public abstract class CVSSyncTreeSubscriber extends SyncTreeSubscriber {
}
}
+ protected boolean isThreeWay() {
+ return getResourceComparator().isThreeWay();
+ }
+
/**
* Method that creates an instance of SyncInfo for the provider local, base and remote.
* Can be overiden by subclasses.
@@ -188,13 +192,6 @@ public abstract class CVSSyncTreeSubscriber extends SyncTreeSubscriber {
}
}
- /* (non-Javadoc)
- * @see org.eclipse.team.core.sync.TeamSubscriber#isThreeWay()
- */
- public boolean isThreeWay() {
- return true;
- }
-
public ISubscriberResource getRemoteResource(IResource resource) throws TeamException {
return getRemoteResource(resource, getRemoteSynchronizationCache());
}
@@ -274,7 +271,7 @@ public abstract class CVSSyncTreeSubscriber extends SyncTreeSubscriber {
/* (non-Javadoc)
* @see org.eclipse.team.core.subscribers.TeamSubscriber#getDefaultComparisonCriteria()
*/
- public ISubscriberResourceComparator getDefaultComparisonCriteria() {
+ public ISubscriberResourceComparator getResourceComparator() {
return comparisonCriteria;
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java
index ba2fec644..a4981b138 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/CVSSubscriberAction.java
@@ -272,7 +272,7 @@ public abstract class CVSSubscriberAction extends SubscriberAction {
}
protected SyncInfo getParent(SyncInfo info) throws TeamException {
- return info.getSubscriber().getSyncInfo(info.getLocal().getParent());
+ return ((CVSSyncInfo)info).getSubscriber().getSyncInfo(info.getLocal().getParent());
}
protected IResource[] getIResourcesFrom(SyncInfo[] nodes) {
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java
index ce8d04e63..5df0abb35 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeUpdateAction.java
@@ -87,7 +87,7 @@ public class MergeUpdateAction extends SafeUpdateAction {
protected void runSafeUpdate(SyncInfo[] nodes, IProgressMonitor monitor) throws TeamException {
if(nodes.length > 0) {
// Assumption that all nodes are from the same subscriber.
- currentSubcriber = nodes[0].getSubscriber();
+ currentSubcriber = ((CVSSyncInfo)nodes[0]).getSubscriber();
if (!(currentSubcriber instanceof CVSMergeSubscriber)) {
throw new CVSException(Policy.bind("MergeUpdateAction.invalidSubscriber", currentSubcriber.toString())); //$NON-NLS-1$
}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSubscriber.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSubscriber.java
index 0faa683dd..3dc03c222 100644
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSubscriber.java
+++ b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSubscriber.java
@@ -74,7 +74,7 @@ public class TestSubscriber extends Subscriber {
/* (non-Javadoc)
* @see org.eclipse.team.core.subscribers.TeamSubscriber#getDefaultComparisonCriteria()
*/
- public ISubscriberResourceComparator getDefaultComparisonCriteria() {
+ public ISubscriberResourceComparator getResourceComparator() {
return new ISubscriberResourceComparator() {
public boolean compare(IResource local, ISubscriberResource remote) {
return false;
@@ -82,6 +82,9 @@ public class TestSubscriber extends Subscriber {
public boolean compare(ISubscriberResource base, ISubscriberResource remote) {
return false;
}
+ public boolean isThreeWay() {
+ return true;
+ }
};
}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSyncInfo.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSyncInfo.java
index fa427612b..a87aaf045 100644
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSyncInfo.java
+++ b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestSyncInfo.java
@@ -19,7 +19,7 @@ public class TestSyncInfo extends SyncInfo {
private int kind;
public TestSyncInfo(IResource resource, int kind, TestSubscriber subscriber) throws TeamException {
- super(resource, null, null, subscriber);
+ super(resource, null, null, subscriber.getResourceComparator());
this.kind = kind;
}

Back to the top