package org.gbif.occurrence.common.identifier; import java.util.UUID; import com.google.common.base.Objects; import static com.google.common.base.Preconditions.checkNotNull; public class PublisherProvidedUniqueIdentifier implements UniqueIdentifier { private final UUID datasetKey; private final String publisherProvidedIdentifier; public PublisherProvidedUniqueIdentifier(UUID datasetKey, String publisherProvidedIdentifier) { this.datasetKey = checkNotNull(datasetKey, "datasetKey can't be null"); this.publisherProvidedIdentifier = checkNotNull(publisherProvidedIdentifier, "publisherProvidedIdentifier can't be null"); } public String getPublisherProvidedIdentifier() { return publisherProvidedIdentifier; } @Override public UUID getDatasetKey() { return datasetKey; } @Override public String getUniqueString() { return OccurrenceKeyHelper.buildKey(this); } @Override public String getUnscopedUniqueString() { return OccurrenceKeyHelper.buildUnscopedKey(this); } @Override public int hashCode() { return Objects.hashCode(datasetKey, publisherProvidedIdentifier); } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final PublisherProvidedUniqueIdentifier other = (PublisherProvidedUniqueIdentifier) obj; return Objects.equal(this.datasetKey, other.datasetKey) && Objects .equal(this.publisherProvidedIdentifier, other.publisherProvidedIdentifier); } }