2024-03-22 16:34:03 +01:00
|
|
|
|
|
|
|
package eu.dnetlib.dhp.schema.oaf.utils;
|
|
|
|
|
|
|
|
import java.util.Comparator;
|
|
|
|
|
2024-03-25 15:39:14 +01:00
|
|
|
import eu.dnetlib.dhp.schema.oaf.StructuredProperty;
|
|
|
|
|
2024-03-22 16:34:03 +01:00
|
|
|
public class OrganizationPidComparator implements Comparator<StructuredProperty> {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int compare(StructuredProperty left, StructuredProperty right) {
|
2024-04-11 15:49:29 +02:00
|
|
|
if (left == null) {
|
|
|
|
return right == null ? 0 : -1;
|
|
|
|
} else if (right == null) {
|
|
|
|
return 1;
|
|
|
|
}
|
2024-03-22 16:34:03 +01:00
|
|
|
|
|
|
|
PidType lClass = PidType.tryValueOf(left.getQualifier().getClassid());
|
|
|
|
PidType rClass = PidType.tryValueOf(right.getQualifier().getClassid());
|
|
|
|
|
2024-04-11 15:49:29 +02:00
|
|
|
if (lClass.equals(rClass))
|
|
|
|
return 0;
|
|
|
|
|
2024-03-22 16:34:03 +01:00
|
|
|
if (lClass.equals(PidType.openorgs))
|
|
|
|
return -1;
|
|
|
|
if (rClass.equals(PidType.openorgs))
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
if (lClass.equals(PidType.GRID))
|
|
|
|
return -1;
|
|
|
|
if (rClass.equals(PidType.GRID))
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
if (lClass.equals(PidType.mag_id))
|
|
|
|
return -1;
|
|
|
|
if (rClass.equals(PidType.mag_id))
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
if (lClass.equals(PidType.urn))
|
|
|
|
return -1;
|
|
|
|
if (rClass.equals(PidType.urn))
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|