package net.sf.jlinkgrammar; import java.util.Comparator; /** * TODO add javadoc * */ public class VDALCostModel implements Comparator { public int compare(Object o1, Object o2) { /* for sorting the linkages in postprocessing */ LinkageInfo p1 = (LinkageInfo)o1; LinkageInfo p2 = (LinkageInfo)o2; if (p1.N_violations != p2.N_violations) { return (p1.N_violations - p2.N_violations); } else if (p1.unused_word_cost != p2.unused_word_cost) { return (p1.unused_word_cost - p2.unused_word_cost); } else if (p1.disjunct_cost != p2.disjunct_cost) { return (p1.disjunct_cost - p2.disjunct_cost); } else if (p1.and_cost != p2.and_cost) { return (p1.and_cost - p2.and_cost); } else { return (p1.link_cost - p2.link_cost); } } }