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<br/>
* @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
}
}