001package co.codewizards.cloudstore.core.repo.sync; 002 003import static co.codewizards.cloudstore.core.util.Util.*; 004import static java.util.Objects.*; 005 006import java.io.Serializable; 007import java.util.UUID; 008 009import co.codewizards.cloudstore.core.oio.File; 010 011@SuppressWarnings("serial") 012public class RepoSyncActivity implements Serializable { 013 014 private final UUID localRepositoryId; 015 private final File localRoot; 016 private final RepoSyncActivityType activityType; 017 018 public RepoSyncActivity(final UUID localRepositoryId, final File localRoot, final RepoSyncActivityType activityType) { 019 this.localRepositoryId = requireNonNull(localRepositoryId, "localRepositoryId"); 020 this.localRoot = requireNonNull(localRoot, "localRoot"); 021 this.activityType = requireNonNull(activityType, "activityType"); 022 } 023 024 public UUID getLocalRepositoryId() { 025 return localRepositoryId; 026 } 027 public File getLocalRoot() { 028 return localRoot; 029 } 030 public RepoSyncActivityType getActivityType() { 031 return activityType; 032 } 033 034 @Override 035 public int hashCode() { 036 final int prime = 31; 037 int result = 1; 038 result = prime * result + ((localRepositoryId == null) ? 0 : localRepositoryId.hashCode()); 039 result = prime * result + ((activityType == null) ? 0 : activityType.hashCode()); 040 return result; 041 } 042 043 @Override 044 public boolean equals(final Object obj) { 045 if (this == obj) 046 return true; 047 if (obj == null) 048 return false; 049 if (getClass() != obj.getClass()) 050 return false; 051 final RepoSyncActivity other = (RepoSyncActivity) obj; 052 return equal(this.localRepositoryId, other.localRepositoryId) && equal(this.activityType, other.activityType); 053 } 054 055 @Override 056 public String toString() { 057 return String.format("%s[localRepositoryId=%s, localRoot='%s', activityType=%s]", 058 getClass().getName(), localRepositoryId, localRoot, activityType); 059 } 060}