package org.jabref.gui.util.comparator; import java.util.Comparator; import java.util.Optional; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.specialfields.SpecialField; /** * Comparator that handles the ranking icon column * * Based on IconComparator * Only comparing ranking field * inverse comparison of ranking as rank5 is higher than rank1 */ public class RankingFieldComparator implements Comparator<BibEntry> { @Override public int compare(BibEntry e1, BibEntry e2) { Optional<String> val1 = e1.getField(SpecialField.RANKING.getFieldName()); Optional<String> val2 = e2.getField(SpecialField.RANKING.getFieldName()); if (val1.isPresent()) { if (val2.isPresent()) { // val1 is not null AND val2 is not null int compareToRes = val1.get().compareTo(val2.get()); if (compareToRes == 0) { return 0; } else { return compareToRes * -1; } } else { return -1; } } else { if (val2.isPresent()) { return 1; } else { return 0; } } } }