package org.gbif.occurrence.parsing.xml;
import org.gbif.occurrence.common.identifier.UniqueIdentifier;
import java.util.Set;
import javax.annotation.Nullable;
import com.google.common.base.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* Contains the set of {@link UniqueIdentifier} that were extracted from a raw fragment that each uniquely identify
* that fragment. May also contain a unitQualifier for cases of multiple occurrences within a single fragment
* (e.g. ABCD 2.06).
*/
public class IdentifierExtractionResult {
private final Set<UniqueIdentifier> uniqueIdentifiers;
@Nullable
private final String unitQualifier;
public IdentifierExtractionResult(Set<UniqueIdentifier> uniqueIdentifiers, @Nullable String unitQualifier) {
this.uniqueIdentifiers = checkNotNull(uniqueIdentifiers, "uniqueIdentifiers can't be null");
this.unitQualifier = unitQualifier;
}
public String getUnitQualifier() {
return unitQualifier;
}
public Set<UniqueIdentifier> getUniqueIdentifiers() {
return uniqueIdentifiers;
}
@Override
public int hashCode() {
return Objects.hashCode(uniqueIdentifiers, unitQualifier);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
final IdentifierExtractionResult other = (IdentifierExtractionResult) obj;
return Objects.equal(this.uniqueIdentifiers, other.uniqueIdentifiers) && Objects
.equal(this.unitQualifier, other.unitQualifier);
}
}