如何在HBase 0.98版本中实现一个自定义的比较器,继承ByteArrayComparable抽象类。该抽象类有两个抽象方法compareTo 和 toByteArray。compareTo实现比较逻辑,但是toByteArray不知道该怎么写。
HBase自带的比较器:BinaryComparator、BinaryPrefixComparator、RegexStringComparator、SubstringComparator等的toByteArray方法如下
// BinaryComparator
public byte [] toByteArray() {
ComparatorProtos.BinaryComparator.Builder builder =
ComparatorProtos.BinaryComparator.newBuilder();
builder.setComparable(super.convert());
return builder.build().toByteArray();
}
// BinaryPrefixComparator
public byte [] toByteArray() {
ComparatorProtos.BinaryPrefixComparator.Builder builder =
ComparatorProtos.BinaryPrefixComparator.newBuilder();
builder.setComparable(super.convert());
return builder.build().toByteArray();
}
// RegexStringComparator
public byte [] toByteArray() {
ComparatorProtos.RegexStringComparator.Builder builder =
ComparatorProtos.RegexStringComparator.newBuilder();
builder.setPattern(pattern.toString());
builder.setPatternFlags(pattern.flags());
return builder.build().toByteArray();
}
// SubstringComparator
public byte [] toByteArray() {
ComparatorProtos.SubstringComparator.Builder builder =
ComparatorProtos.SubstringComparator.newBuilder();
builder.setSubstr(this.substr);
return builder.build().toByteArray();
}
都是使用的ComparatorProtos中的一些内部类。如果自己实现比较器,比如日期比较器、数值比较器,这个方法该怎么写