Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2004-02-17 16:20:42 +0000
committerMichael Valenta2004-02-17 16:20:42 +0000
commit6b6daa602acedc73bc78cc7346c55dfeaf172cb1 (patch)
tree8f1a1c1d18e9cb0486aec9c970237ce3da9a2261
parent99efd20c0e1eb47500401dfb736c065a241e267d (diff)
downloadeclipse.platform.team-6b6daa602acedc73bc78cc7346c55dfeaf172cb1.tar.gz
eclipse.platform.team-6b6daa602acedc73bc78cc7346c55dfeaf172cb1.tar.xz
eclipse.platform.team-6b6daa602acedc73bc78cc7346c55dfeaf172cb1.zip
*** empty log message ***
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfo.java23
-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/CVSMergeSubscriber.java4
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSyncInfo.java2
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncInfo.java2
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSSyncTreeSubscriber.java4
6 files changed, 32 insertions, 7 deletions
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfo.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfo.java
index 1e0f74fe6..600220ee2 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfo.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfo.java
@@ -147,12 +147,11 @@ public class SyncInfo implements IAdaptable {
/**
* Construct a sync info object.
*/
- public SyncInfo(IResource local, IRemoteResource base, IRemoteResource remote, IRemoteResourceComparator comparator) throws TeamException {
+ public SyncInfo(IResource local, IRemoteResource base, IRemoteResource remote, IRemoteResourceComparator comparator) {
this.local = local;
this.base = base;
this.remote = remote;
this.comparator = comparator;
- this.syncKind = calculateKind();
}
/**
@@ -321,6 +320,26 @@ public class SyncInfo implements IAdaptable {
return Policy.bind("RemoteSyncElement.delimit", label); //$NON-NLS-1$
}
+ /**
+ * Method that is invoked after instance creation to initialize the sync kind.
+ * This method should only be invoked by the creator of the <code>SyncInfo</code>
+ * instance. It is not done from the constructor in order to allow subclasses
+ * to calculate the sync kind from any additional state variables they may have.
+ * @throws TeamException
+ */
+ public final void init() throws TeamException {
+ syncKind = calculateKind();
+ }
+
+ /**
+ * Method that is invoked from the <code>init()</code> method to calculate
+ * the sync kind for this instance of <code>SyncInfo</code>. The result is
+ * assigned to an instance variable and is available using <code>getKind()</code>.
+ * Subclasses should not invoke this method but may override it in order to customize
+ * the sync kind calculation algorithm.
+ * @return the sync kind of this <code>SyncInfo</code>
+ * @throws TeamException
+ */
protected int calculateKind() throws TeamException {
int description = IN_SYNC;
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 20f7f72ad..da254e815 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
@@ -65,7 +65,9 @@ public abstract class SyncTreeSubscriber extends Subscriber {
* @return
*/
protected SyncInfo getSyncInfo(IResource local, IRemoteResource base, IRemoteResource remote) throws TeamException {
- return new SyncInfo(local, base, remote, this.getResourceComparator());
+ SyncInfo info = new SyncInfo(local, base, remote, this.getResourceComparator());
+ info.init();
+ return info;
}
public IResource[] members(IResource resource) throws TeamException {
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java
index a78efc0d7..4a7362d37 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java
@@ -84,7 +84,9 @@ public class CVSMergeSubscriber extends CVSSyncTreeSubscriber implements IResour
}
protected SyncInfo getSyncInfo(IResource local, IRemoteResource base, IRemoteResource remote) throws TeamException {
- return new CVSMergeSyncInfo(local, base, remote, this);
+ CVSMergeSyncInfo info = new CVSMergeSyncInfo(local, base, remote, this);
+ info.init();
+ return info;
}
public void merged(IResource[] resources) throws TeamException {
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSyncInfo.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSyncInfo.java
index 81b11a7db..2244c73fe 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSyncInfo.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSyncInfo.java
@@ -20,7 +20,7 @@ import org.eclipse.team.core.synchronize.*;
*/
public class CVSMergeSyncInfo extends CVSSyncInfo {
- public CVSMergeSyncInfo(IResource local, IRemoteResource base, IRemoteResource remote, Subscriber subscriber) throws TeamException {
+ public CVSMergeSyncInfo(IResource local, IRemoteResource base, IRemoteResource remote, Subscriber subscriber) {
super(local, base, remote, subscriber);
}
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 e10ac9234..55718890e 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
@@ -39,7 +39,7 @@ public class CVSSyncInfo extends SyncInfo {
private static final int SYNC_INFO_CONFLICTS = 5;
private Subscriber subscriber;
- public CVSSyncInfo(IResource local, IRemoteResource base, IRemoteResource remote, Subscriber subscriber) throws TeamException {
+ public CVSSyncInfo(IResource local, IRemoteResource base, IRemoteResource remote, Subscriber subscriber) {
super(local, base, remote, ((SyncTreeSubscriber)subscriber).getResourceComparator());
this.subscriber = subscriber;
}
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 13d61048a..dedbd4bc6 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
@@ -92,7 +92,9 @@ public abstract class CVSSyncTreeSubscriber extends SyncTreeSubscriber {
* @return
*/
protected SyncInfo getSyncInfo(IResource local, IRemoteResource base, IRemoteResource remote) throws TeamException {
- return new CVSSyncInfo(local, base, remote, this);
+ CVSSyncInfo info = new CVSSyncInfo(local, base, remote, this);
+ info.init();
+ return info;
}
/* (non-Javadoc)

Back to the top