package com.study.hbase.bitcomparator.core; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.filter.ByteArrayComparable; import org.apache.hadoop.hbase.util.Bytes; import org.apache.log4j.Logger; import com.google.protobuf.InvalidProtocolBufferException; import com.study.hbase.bitcomparator.core.protos.RowKeyBitProtos; /** * 判断RowKey中某一段大于或小于某值,注意不能比较大于0或小于0 * 如果构造比较器的值有多段大于0的值则只判断左起第一个不为0的数字 * @author 410s * */ public class RowKeyGLComparator extends ByteArrayComparable{ Logger logger=Logger.getLogger(RowKeyGLComparator.class); protected byte[] data; public RowKeyGLComparator(byte[] value) { super(value); this.data=value; } @Override public int compareTo(byte[] value) { return this.compareTo(value, 0, value.length); } @Override public int compareTo(byte[] value, int offset, int length) { //0 的话相等,大于小于, if(length!=this.data.length){ return 0; } for(int i=0;i