public class RegexStringComparator extends WritableByteArrayComparable
CompareFilter
implementations, such
as RowFilter
, QualifierFilter
, and ValueFilter
, for
filtering based on the value of a given column. Use it to test if a given
regular expression matches a cell value in the column.
Only EQUAL or NOT_EQUAL comparisons are valid with this comparator.
For example:
ValueFilter vf = new ValueFilter(CompareOp.EQUAL, new RegexStringComparator( // v4 IP address "(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3,3}" + "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(\\/[0-9]+)?" + "|" + // v6 IP address "((([\\dA-Fa-f]{1,4}:){7}[\\dA-Fa-f]{1,4})(:([\\d]{1,3}.)" + "{3}[\\d]{1,3})?)(\\/[0-9]+)?"));
Constructor and Description |
---|
RegexStringComparator()
Nullary constructor for Writable, do not use
|
RegexStringComparator(String expr)
Constructor
|
Modifier and Type | Method and Description |
---|---|
int |
compareTo(byte[] value,
int offset,
int length)
Special compareTo method for subclasses, to avoid
copying byte[] unnecessarily.
|
void |
readFields(DataInput in) |
void |
setCharset(Charset charset)
Specifies the
Charset to use to convert the row key to a String. |
void |
write(DataOutput out) |
compareTo, getValue
public RegexStringComparator()
public RegexStringComparator(String expr)
expr
- a valid regular expressionpublic void setCharset(Charset charset)
Charset
to use to convert the row key to a String.
The row key needs to be converted to a String in order to be matched against the regular expression. This method controls which charset is used to do this conversion.
If the row key is made of arbitrary bytes, the charset ISO-8859-1
is recommended.
charset
- The charset to use.public int compareTo(byte[] value, int offset, int length)
WritableByteArrayComparable
compareTo
in class WritableByteArrayComparable
value
- byte[] to compareoffset
- offset into valuelength
- number of bytes to comparepublic void readFields(DataInput in) throws IOException
readFields
in interface org.apache.hadoop.io.Writable
readFields
in class WritableByteArrayComparable
IOException
public void write(DataOutput out) throws IOException
write
in interface org.apache.hadoop.io.Writable
write
in class WritableByteArrayComparable
IOException
Copyright © 2014 The Apache Software Foundation. All Rights Reserved.