1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.hadoop.hbase.filter;
22
23 import java.util.ArrayList;
24
25 import org.apache.hadoop.hbase.KeyValue;
26 import org.apache.hadoop.hbase.client.Scan;
27
28
29
30
31
32
33
34
35
36
37
38
39
40 public class RowFilter extends CompareFilter {
41
42 private boolean filterOutRow = false;
43
44
45
46
47 public RowFilter() {
48 super();
49 }
50
51
52
53
54
55
56 public RowFilter(final CompareOp rowCompareOp,
57 final WritableByteArrayComparable rowComparator) {
58 super(rowCompareOp, rowComparator);
59 }
60
61 @Override
62 public void reset() {
63 this.filterOutRow = false;
64 }
65
66 @Override
67 public ReturnCode filterKeyValue(KeyValue v) {
68 if(this.filterOutRow) {
69 return ReturnCode.NEXT_ROW;
70 }
71 return ReturnCode.INCLUDE;
72 }
73
74 @Override
75 public boolean filterRowKey(byte[] data, int offset, int length) {
76 if(doCompare(this.compareOp, this.comparator, data, offset, length)) {
77 this.filterOutRow = true;
78 }
79 return this.filterOutRow;
80 }
81
82 @Override
83 public boolean filterRow() {
84 return this.filterOutRow;
85 }
86
87 public static Filter createFilterFromArguments(ArrayList<byte []> filterArguments) {
88 ArrayList arguments = CompareFilter.extractArguments(filterArguments);
89 CompareOp compareOp = (CompareOp)arguments.get(0);
90 WritableByteArrayComparable comparator = (WritableByteArrayComparable)arguments.get(1);
91 return new RowFilter(compareOp, comparator);
92 }
93 }