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