dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/PidValueComparator.java

35 lines
705 B
Java

package eu.dnetlib.dhp.schema.oaf.utils;
import java.util.Comparator;
import java.util.Optional;
import eu.dnetlib.dhp.schema.oaf.Pid;
import eu.dnetlib.dhp.schema.oaf.StructuredProperty;
public class PidValueComparator implements Comparator<Pid> {
@Override
public int compare(Pid left, Pid right) {
if (left == null && right == null)
return 0;
if (left == null)
return 1;
if (right == null)
return -1;
Pid l = CleaningFunctions.normalizePidValue(left);
Pid r = CleaningFunctions.normalizePidValue(right);
return Optional
.ofNullable(l.getValue())
.map(
lv -> Optional
.ofNullable(r.getValue())
.map(lv::compareTo)
.orElse(-1))
.orElse(1);
}
}