diff options
author | Michael Valenta | 2004-02-17 16:20:42 +0000 |
---|---|---|
committer | Michael Valenta | 2004-02-17 16:20:42 +0000 |
commit | 6b6daa602acedc73bc78cc7346c55dfeaf172cb1 (patch) | |
tree | 8f1a1c1d18e9cb0486aec9c970237ce3da9a2261 | |
parent | 99efd20c0e1eb47500401dfb736c065a241e267d (diff) | |
download | eclipse.platform.team-6b6daa602acedc73bc78cc7346c55dfeaf172cb1.tar.gz eclipse.platform.team-6b6daa602acedc73bc78cc7346c55dfeaf172cb1.tar.xz eclipse.platform.team-6b6daa602acedc73bc78cc7346c55dfeaf172cb1.zip |
*** empty log message ***
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) |