package tap.core; import org.apache.avro.mapred.AvroWrapper; import tap.core.io.BinaryKey; public class BinaryKeyGroupComparator extends BinaryKeyComparator { public int compare(AvroWrapper<BinaryKey> x, AvroWrapper<BinaryKey> y) { BinaryKey k1 = x.datum(), k2 = y.datum(); int length1 = k1.groupBytesLength() > 0 ? k1.groupBytesLength() : k1.keyBytesLength(); int length2 = k2.groupBytesLength() > 0 ? k2.groupBytesLength() : k2.keyBytesLength(); length1 += BinaryKey.KEY_BYTES_OFFSET; length2 += BinaryKey.KEY_BYTES_OFFSET; return super.compareBinary( k1.getBuffer(), 0, length1, k2.getBuffer(), 0, length2); } }