package co.smartreceipts.android.sync.model.impl; import android.support.annotation.NonNull; import android.support.annotation.Nullable; 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 IdentifierMap implements Serializable { @SerializedName("identifier_map") private final Map<SyncProvider, Identifier> mIdentifierMap; public IdentifierMap(@NonNull Map<SyncProvider, Identifier> identifierMap) { mIdentifierMap = new HashMap<>(Preconditions.checkNotNull(identifierMap)); } @Nullable public Identifier getSyncId(@NonNull SyncProvider provider) { return mIdentifierMap.get(provider); } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof IdentifierMap)) return false; IdentifierMap that = (IdentifierMap) o; return mIdentifierMap.equals(that.mIdentifierMap); } @Override public int hashCode() { return mIdentifierMap.hashCode(); } }