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 org.apache.hadoop.hbase.KeyValue;
24 import org.apache.hadoop.hbase.util.Bytes;
25
26 import java.io.DataOutput;
27 import java.io.IOException;
28 import java.io.DataInput;
29 import java.util.List;
30
31
32
33
34 public class PrefixFilter extends FilterBase {
35 protected byte [] prefix = null;
36 protected boolean passedPrefix = false;
37
38 public PrefixFilter(final byte [] prefix) {
39 this.prefix = prefix;
40 }
41
42 public PrefixFilter() {
43 super();
44 }
45
46 public byte[] getPrefix() {
47 return prefix;
48 }
49
50 public boolean filterRowKey(byte[] buffer, int offset, int length) {
51 if (buffer == null || this.prefix == null)
52 return true;
53 if (length < prefix.length)
54 return true;
55
56
57
58 int cmp = Bytes.compareTo(buffer, offset, this.prefix.length, this.prefix, 0,
59 this.prefix.length);
60 if(cmp > 0) {
61 passedPrefix = true;
62 }
63 return cmp != 0;
64 }
65
66 public boolean filterAllRemaining() {
67 return passedPrefix;
68 }
69
70 public void write(DataOutput out) throws IOException {
71 Bytes.writeByteArray(out, this.prefix);
72 }
73
74 public void readFields(DataInput in) throws IOException {
75 this.prefix = Bytes.readByteArray(in);
76 }
77 }