package co.smartreceipts.android.sync.model.impl; import android.support.annotation.NonNull; import com.google.common.base.Preconditions; import com.google.gson.annotations.SerializedName; import java.io.Serializable; import java.util.HashMap; import java.util.Map; import co.smartreceipts.android.sync.provider.SyncProvider; public class SyncStatusMap implements Serializable { @SerializedName("sync_status_map") private final Map<SyncProvider, Boolean> mSyncStatusMap; public SyncStatusMap(@NonNull Map<SyncProvider, Boolean> syncStatusMap) { mSyncStatusMap = new HashMap<>(Preconditions.checkNotNull(syncStatusMap)); } public boolean isSynced(@NonNull SyncProvider syncProvider) { if (mSyncStatusMap.containsKey(syncProvider)) { return mSyncStatusMap.get(syncProvider); } else { return false; } } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof SyncStatusMap)) return false; SyncStatusMap that = (SyncStatusMap) o; return mSyncStatusMap != null ? mSyncStatusMap.equals(that.mSyncStatusMap) : that.mSyncStatusMap == null; } @Override public int hashCode() { return mSyncStatusMap != null ? mSyncStatusMap.hashCode() : 0; } }