From d08c2744f57093a93195f323cdca51282817f590 Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Wed, 23 Mar 2022 13:59:40 +0100 Subject: [PATCH] added comparator for refereed field instances --- .../dhp/schema/common/ModelConstants.java | 3 ++ .../dhp/schema/common/RefereedComparator.java | 44 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 src/main/java/eu/dnetlib/dhp/schema/common/RefereedComparator.java diff --git a/src/main/java/eu/dnetlib/dhp/schema/common/ModelConstants.java b/src/main/java/eu/dnetlib/dhp/schema/common/ModelConstants.java index bd893bf..1ce1a73 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/common/ModelConstants.java +++ b/src/main/java/eu/dnetlib/dhp/schema/common/ModelConstants.java @@ -57,6 +57,9 @@ public class ModelConstants { public static final String DNET_RELATION_SUBRELTYPE = "dnet:relation_subRelType"; public static final String DNET_RELATION_RELCLASS = "dnet:relation_relClass"; + public static final String PEER_REVIEWED = "nonPeerReviewed"; + public static final String NON_PEER_REVIEWED = "nonPeerReviewed"; + public static final String SYSIMPORT_CROSSWALK_REPOSITORY = "sysimport:crosswalk:repository"; public static final String SYSIMPORT_CROSSWALK_ENTITYREGISTRY = "sysimport:crosswalk:entityregistry"; public static final String SYSIMPORT_ACTIONSET = "sysimport:actionset"; diff --git a/src/main/java/eu/dnetlib/dhp/schema/common/RefereedComparator.java b/src/main/java/eu/dnetlib/dhp/schema/common/RefereedComparator.java new file mode 100644 index 0000000..3c962ce --- /dev/null +++ b/src/main/java/eu/dnetlib/dhp/schema/common/RefereedComparator.java @@ -0,0 +1,44 @@ + +package eu.dnetlib.dhp.schema.common; + +import eu.dnetlib.dhp.schema.oaf.Qualifier; + +import java.util.Comparator; + +public class RefereedComparator implements Comparator { + + @Override + public int compare(Qualifier left, Qualifier right) { + + if (left == null && right == null) + return 0; + if (left == null) + return 1; + if (right == null) + return -1; + + String lClass = left.getClassid(); + String rClass = right.getClassid(); + + if (lClass.equals(rClass)) + return 0; + + if (lClass.equals(ModelConstants.PEER_REVIEWED)) + return -1; + if (rClass.equals(ModelConstants.PEER_REVIEWED)) + return 1; + + if (lClass.equals(ModelConstants.NON_PEER_REVIEWED)) + return -1; + if (rClass.equals(ModelConstants.NON_PEER_REVIEWED)) + return 1; + + if (lClass.equals(ModelConstants.UNKNOWN)) + return -1; + if (rClass.equals(ModelConstants.UNKNOWN)) + return 1; + + // Else (but unlikely), lexicographical ordering will do. + return lClass.compareTo(rClass); + } +}