dnet-hadoop/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/model/SortableRelation.java

39 lines
965 B
Java
Raw Normal View History

2020-04-04 14:03:43 +02:00
package eu.dnetlib.dhp.oa.provision.model;
import java.io.Serializable;
import java.util.Map;
2020-04-04 14:03:43 +02:00
import com.google.common.collect.ComparisonChain;
import com.google.common.collect.Maps;
2020-04-04 14:03:43 +02:00
import eu.dnetlib.dhp.schema.oaf.Relation;
2020-04-06 08:59:58 +02:00
public class SortableRelation extends Relation implements Comparable<Relation>, Serializable {
2020-04-04 14:03:43 +02:00
private static final Map<String, Integer> weights = Maps.newHashMap();
2020-04-04 14:03:43 +02:00
static {
weights.put("outcome", 0);
weights.put("supplement", 1);
weights.put("affiliation", 2);
weights.put("relationship", 3);
weights.put("publicationDataset", 4);
weights.put("similarity", 5);
2020-04-04 14:03:43 +02:00
weights.put("provision", 6);
weights.put("participation", 7);
weights.put("dedup", 8);
}
2020-04-04 14:03:43 +02:00
@Override
public int compareTo(Relation o) {
return ComparisonChain
.start()
.compare(weights.get(getSubRelType()), weights.get(o.getSubRelType()))
.compare(getSource(), o.getSource())
.compare(getTarget(), o.getTarget())
.result();
}
2020-04-04 14:03:43 +02:00
}