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 (>) 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}