001package co.codewizards.cloudstore.local.persistence;
002
003import static co.codewizards.cloudstore.core.util.Util.*;
004
005import javax.jdo.annotations.Column;
006import javax.jdo.annotations.NullValue;
007import javax.jdo.annotations.PersistenceCapable;
008import javax.jdo.annotations.Persistent;
009import javax.jdo.annotations.Query;
010import javax.jdo.annotations.Unique;
011
012@PersistenceCapable
013@Unique(name="LastSyncToRemoteRepo_remoteRepository", members="remoteRepository")
014@Query(name="getLastSyncToRemoteRepo_remoteRepository", value="SELECT UNIQUE WHERE this.remoteRepository == :remoteRepository")
015public class LastSyncToRemoteRepo extends Entity {
016
017        @Persistent(nullValue=NullValue.EXCEPTION)
018        private RemoteRepository remoteRepository;
019        private long localRepositoryRevisionSynced = -1;
020        private long localRepositoryRevisionInProgress = -1;
021
022        @Column(defaultValue = "N")
023        private boolean resyncMode;
024
025        public RemoteRepository getRemoteRepository() {
026                return remoteRepository;
027        }
028        public void setRemoteRepository(RemoteRepository remoteRepository) {
029                if (! equal(this.remoteRepository, remoteRepository))
030                        this.remoteRepository = remoteRepository;
031        }
032
033        /**
034         * Gets the {@link LocalRepository#getRevision() LocalRepository.revision} that
035         * was synced to the remote repository.
036         * <p>
037         * This means all local changes with a {@link AutoTrackLocalRevision#getLocalRevision() localRevision}
038         * greater than (&gt;) this revision are not yet sent to the remote repo.
039         * @return the {@link LocalRepository#getRevision() LocalRepository.revision} that
040         * was synced to the remote repository.
041         */
042        public long getLocalRepositoryRevisionSynced() {
043                return localRepositoryRevisionSynced;
044        }
045        public void setLocalRepositoryRevisionSynced(long localRepositoryRevision) {
046                if (! equal(this.localRepositoryRevisionSynced, localRepositoryRevision))
047                        this.localRepositoryRevisionSynced = localRepositoryRevision;
048        }
049
050        public long getLocalRepositoryRevisionInProgress() {
051                return localRepositoryRevisionInProgress;
052        }
053        public void setLocalRepositoryRevisionInProgress(long localRepositoryRevisionInProgress) {
054                if (! equal(this.localRepositoryRevisionInProgress, localRepositoryRevisionInProgress))
055                        this.localRepositoryRevisionInProgress = localRepositoryRevisionInProgress;
056        }
057
058        public boolean isResyncMode() {
059                return resyncMode;
060        }
061        public void setResyncMode(boolean resyncMode) {
062                this.resyncMode = resyncMode;
063        }
064}