import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.filter.Filter; import org.apache.hadoop.hbase.filter.FilterBase; import org.apache.hadoop.hbase.util.Bytes; /** * Test Filter
* @author weic * @version 1.0 Feb 22, 2012 * @see */ public class TestFilter extends FilterBase implements Filter{ /** * Default constructor, filters nothing. Required though for RPC * deserialization. */ public TestFilter(){ super(); } @Override public ReturnCode filterKeyValue(KeyValue v) { System.out.println("[filterKeyValue] family:" + Bytes.toString(v.getFamily()) + "|qualifier:" + Bytes.toString(v.getQualifier()) + "|value:" + Bytes.toStringBinary(v.getValue())); ReturnCode code = super.filterKeyValue(v); if(code == ReturnCode.INCLUDE){ //once get a kv, jump to next row System.out.println("[filterKeyValue] ReturnCode is: " + ReturnCode.NEXT_ROW); return ReturnCode.NEXT_ROW; }else{ System.out.println("[filterKeyValue] ReturnCode is: " + code.name()); return code; } } @Override public boolean filterRow() { boolean filterRow = super.filterRow(); System.out.println("[filterRow] filterOutRow:" + filterRow); return filterRow; } @Override public boolean filterRowKey(byte[] rowKey, int offset, int length) { System.out.println("[filterRowKey]" + Bytes.toStringBinary(rowKey)); return super.filterRowKey(rowKey, offset, length); } @Override public void reset() { System.out.println("[reset]"); super.reset(); } @Override public void write(DataOutput out) throws IOException { // TODO Auto-generated method stub } @Override public void readFields(DataInput in) throws IOException { // TODO Auto-generated method stub } }