2019-10-24 11:39:41 +02:00
|
|
|
package eu.dnetlib.dhp.schema.oaf;
|
|
|
|
|
|
|
|
import java.io.Serializable;
|
2020-03-11 16:57:28 +01:00
|
|
|
import java.util.Objects;
|
2019-10-24 11:39:41 +02:00
|
|
|
|
2019-10-25 18:10:30 +02:00
|
|
|
public abstract class Oaf implements Serializable {
|
2020-04-18 12:42:58 +02:00
|
|
|
|
2019-10-24 11:39:41 +02:00
|
|
|
private DataInfo dataInfo;
|
|
|
|
|
|
|
|
private Long lastupdatetimestamp;
|
|
|
|
|
|
|
|
public DataInfo getDataInfo() {
|
|
|
|
return dataInfo;
|
|
|
|
}
|
|
|
|
|
2019-10-25 18:10:30 +02:00
|
|
|
public void setDataInfo(DataInfo dataInfo) {
|
2019-10-24 11:39:41 +02:00
|
|
|
this.dataInfo = dataInfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Long getLastupdatetimestamp() {
|
|
|
|
return lastupdatetimestamp;
|
|
|
|
}
|
|
|
|
|
2019-10-25 18:10:30 +02:00
|
|
|
public void setLastupdatetimestamp(Long lastupdatetimestamp) {
|
2019-10-24 11:39:41 +02:00
|
|
|
this.lastupdatetimestamp = lastupdatetimestamp;
|
|
|
|
}
|
2019-12-12 15:18:48 +01:00
|
|
|
|
|
|
|
public void mergeOAFDataInfo(Oaf e) {
|
2020-04-18 12:42:58 +02:00
|
|
|
if (e.getDataInfo() != null && compareTrust(this, e) < 0) dataInfo = e.getDataInfo();
|
2019-12-12 15:18:48 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
protected String extractTrust(Oaf e) {
|
2020-04-18 12:42:58 +02:00
|
|
|
if (e == null || e.getDataInfo() == null || e.getDataInfo().getTrust() == null)
|
|
|
|
return "0.0";
|
2019-12-12 15:18:48 +01:00
|
|
|
return e.getDataInfo().getTrust();
|
|
|
|
}
|
|
|
|
|
|
|
|
protected int compareTrust(Oaf a, Oaf b) {
|
|
|
|
return extractTrust(a).compareTo(extractTrust(b));
|
|
|
|
}
|
2020-03-11 16:57:28 +01:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean equals(Object o) {
|
|
|
|
if (this == o) return true;
|
|
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
|
|
Oaf oaf = (Oaf) o;
|
2020-04-18 12:42:58 +02:00
|
|
|
return Objects.equals(dataInfo, oaf.dataInfo)
|
|
|
|
&& Objects.equals(lastupdatetimestamp, oaf.lastupdatetimestamp);
|
2020-03-11 16:57:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int hashCode() {
|
|
|
|
return Objects.hash(dataInfo, lastupdatetimestamp);
|
|
|
|
}
|
2019-10-24 11:39:41 +02:00
|
|
|
}
|