package org.jabref.logic.bibtex.comparator; import java.util.Comparator; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.FieldName; /** * Compares Bibtex entries based on their 'crossref' fields. Entries including * this field are deemed smaller than entries without this field. This serves * the purpose of always placing referenced entries after referring entries in * the .bib file. After this criterion comes comparisons of individual fields. */ public class CrossRefEntryComparator implements Comparator<BibEntry> { @Override public int compare(BibEntry e1, BibEntry e2) { boolean crEntry1 = e1.hasField(FieldName.CROSSREF); boolean crEntry2 = e2.hasField(FieldName.CROSSREF); if ((crEntry1 && crEntry2) || (!crEntry1 && !crEntry2)) { return 0; } if (!crEntry1) { return 1; } else { return -1; } } }