package com.ontology2.bakemono.joins;
import org.apache.hadoop.io.WritableComparable;
import org.apache.hadoop.io.WritableComparator;
public class TaggedKeySortComparator<T extends WritableComparable> extends WritableComparator {
//
// Because of type erasure, a TaggedItem doesn't know how to instantiate
// itself, so you need to use a subclass of TaggedItem. This class doesn't
// know which subclass it needs to instantiate so you must subclass this to
// make something that can self-instantiate
//
protected TaggedKeySortComparator(Class childClass) {
super(childClass,true);
}
@Override
public int compare(WritableComparable a,WritableComparable b) {
TaggedItem<T> left=(TaggedItem<T>) a;
TaggedItem<T> right=(TaggedItem<T>) b;
int result=left.getKey().compareTo(right.getKey());
return result == 0 ? left.getTag().compareTo(right.getTag()) : result;
}
}