dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/sx/scholix/ScholixIdentifier.java

80 lines
1.8 KiB
Java

package eu.dnetlib.dhp.schema.sx.scholix;
import com.google.common.collect.ComparisonChain;
import org.apache.commons.lang3.StringUtils;
import static eu.dnetlib.dhp.schema.sx.scholix.ScholixComparator.normalizeString;
import java.io.Serializable;
import java.util.Objects;
public class ScholixIdentifier implements Serializable, Comparable<ScholixIdentifier> {
private String identifier;
private String schema;
private String url;
public ScholixIdentifier() {
}
public ScholixIdentifier(String identifier, String schema, String url) {
this.identifier = identifier;
this.schema = schema;
this.url = url;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
@Override
public int compareTo(ScholixIdentifier o) {
final int idComp = StringUtils.compare(normalizeString(identifier), normalizeString(o.getIdentifier()));
if (idComp !=0)
return idComp;
final int schemaComp = StringUtils.compare(normalizeString(schema), normalizeString(o.getSchema()));
if (schemaComp !=0)
return schemaComp;
final int urlComp = StringUtils.compare(normalizeString(url), normalizeString(o.getUrl()));
return urlComp;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ScholixIdentifier that = (ScholixIdentifier) o;
return compareTo(that) == 0;
}
@Override
public int hashCode() {
return Objects.hash(normalizeString(identifier), normalizeString(schema), normalizeString(url));
}
}