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