001package co.codewizards.cloudstore.core.repo.sync;
002
003import static java.util.Objects.*;
004
005import java.net.URL;
006import java.util.Date;
007import java.util.UUID;
008
009import co.codewizards.cloudstore.core.Severity;
010import co.codewizards.cloudstore.core.dto.Error;
011import co.codewizards.cloudstore.core.oio.File;
012import co.codewizards.cloudstore.core.sync.SyncState;
013
014@SuppressWarnings("serial")
015public class RepoSyncState extends SyncState {
016
017        private final UUID localRepositoryId;
018        private final UUID serverRepositoryId;
019        private final File localRoot;
020
021        public RepoSyncState(UUID localRepositoryId, UUID serverRepositoryId, File localRoot, URL url, Severity severity, String message, Error error, Date syncStarted, Date syncFinished) {
022                super(url, severity, message, error, syncStarted, syncFinished);
023                this.localRepositoryId = requireNonNull(localRepositoryId, "localRepositoryId");
024                this.serverRepositoryId = requireNonNull(serverRepositoryId, "serverRepositoryId");
025                this.localRoot = requireNonNull(localRoot, "localRoot");
026        }
027
028        public UUID getLocalRepositoryId() {
029                return localRepositoryId;
030        }
031
032        public UUID getServerRepositoryId() {
033                return serverRepositoryId;
034        }
035
036        public File getLocalRoot() {
037                return localRoot;
038        }
039}