package net.yacy.data.ymark; import java.util.Comparator; import net.yacy.cora.document.encoding.UTF8; import net.yacy.kelondro.blob.Tables; public class TablesRowComparator implements Comparator<Tables.Row> { private String sortname; private boolean desc; public TablesRowComparator(final String sortname, final String sortorder) { setSortName(sortname); if(sortorder.equals("desc")) this.desc = true; else this.desc = false; } public void setSortName(final String sortname) { this.sortname = sortname; } @Override public int compare(Tables.Row row0, Tables.Row row1) { if(row0 != null && row1 != null) { if(row0.containsKey(this.sortname) && row1.containsKey(this.sortname)) { String name1 = UTF8.String(row0.get(this.sortname)).toLowerCase(); String name2 = UTF8.String(row1.get(this.sortname)).toLowerCase(); return (this.desc) ? name2.compareTo(name1) : name1.compareTo(name2); } } return 0; } }