@@ -42,9 +42,13 @@ private static void toParseableByteArray(ByteArrayOutputStream byteStream, Filte
42
42
throws IOException {
43
43
if (filter == null ) {
44
44
throw new IllegalArgumentException ("Filter is null" );
45
+ } else if (filter instanceof DependentColumnFilter ) {
46
+ toParseableByteArray (byteStream , (DependentColumnFilter ) filter );
45
47
} else if (filter instanceof CompareFilter ) {
46
48
// RowFilter, ValueFilter, QualifierFilter
47
49
toParseableByteArray (byteStream , (CompareFilter ) filter );
50
+ } else if (filter instanceof SingleColumnValueExcludeFilter ) {
51
+ toParseableByteArray (byteStream , (SingleColumnValueExcludeFilter ) filter );
48
52
} else if (filter instanceof SingleColumnValueFilter ) {
49
53
toParseableByteArray (byteStream , (SingleColumnValueFilter ) filter );
50
54
} else if (filter instanceof PageFilter ) {
@@ -163,6 +167,25 @@ private static void toParseableByteArray(ByteArrayOutputStream byteStream,
163
167
byteStream .write (')' );
164
168
}
165
169
170
+ // SingleColumnValueExcludeFilter('cf1','col1',=,'binary:123',true,true)
171
+ private static void toParseableByteArray (ByteArrayOutputStream byteStream ,
172
+ SingleColumnValueExcludeFilter filter ) throws IOException {
173
+ byteStream .write (filter .getClass ().getSimpleName ().getBytes ());
174
+ byteStream .write ("('" .getBytes ());
175
+ writeBytesWithEscape (byteStream , filter .getFamily ());
176
+ byteStream .write ("','" .getBytes ());
177
+ writeBytesWithEscape (byteStream , filter .getQualifier ());
178
+ byteStream .write ("'," .getBytes ());
179
+ byteStream .write (toParseableByteArray (filter .getOperator ()));
180
+ byteStream .write (',' );
181
+ toParseableByteArray (byteStream , filter .getComparator ());
182
+ byteStream .write (',' );
183
+ byteStream .write (Boolean .toString (filter .getFilterIfMissing ()).getBytes ());
184
+ byteStream .write (',' );
185
+ byteStream .write (Boolean .toString (filter .getLatestVersionOnly ()).getBytes ());
186
+ byteStream .write (')' );
187
+ }
188
+
166
189
// PageFilter(100);
167
190
private static void toParseableByteArray (ByteArrayOutputStream byteStream , PageFilter filter )
168
191
throws IOException {
@@ -181,6 +204,34 @@ private static void toParseableByteArray(ByteArrayOutputStream byteStream,
181
204
byteStream .write (')' );
182
205
}
183
206
207
+ private static void toParseableByteArray (ByteArrayOutputStream byteStream ,
208
+ DependentColumnFilter filter ) throws IOException {
209
+ // DependentColumnFilter '(' family ',' qualifier ',' BOOL_VALUE ')'
210
+ if (filter .getComparator () == null ) {
211
+ byteStream .write (filter .getClass ().getSimpleName ().getBytes ());
212
+ byteStream .write ("('" .getBytes ());
213
+ writeBytesWithEscape (byteStream , filter .getFamily ());
214
+ byteStream .write ("','" .getBytes ());
215
+ writeBytesWithEscape (byteStream , filter .getQualifier ());
216
+ byteStream .write ("'," .getBytes ());
217
+ byteStream .write (Boolean .toString (filter .getDropDependentColumn ()).getBytes ());
218
+ byteStream .write (')' );
219
+ } else { // DependentColumnFilter '(' family ',' qualifier ',' BOOL_VALUE ',' compare_op ',' comparator ')'
220
+ byteStream .write (filter .getClass ().getSimpleName ().getBytes ());
221
+ byteStream .write ("('" .getBytes ());
222
+ writeBytesWithEscape (byteStream , filter .getFamily ());
223
+ byteStream .write ("','" .getBytes ());
224
+ writeBytesWithEscape (byteStream , filter .getQualifier ());
225
+ byteStream .write ("'," .getBytes ());
226
+ byteStream .write (Boolean .toString (filter .getDropDependentColumn ()).getBytes ());
227
+ byteStream .write (',' );
228
+ byteStream .write (toParseableByteArray (filter .getOperator ()));
229
+ byteStream .write (',' );
230
+ toParseableByteArray (byteStream , filter .getComparator ());
231
+ byteStream .write (')' );
232
+ }
233
+ }
234
+
184
235
private static void toParseableByteArray (ByteArrayOutputStream byteStream ,
185
236
ColumnPaginationFilter filter ) throws IOException {
186
237
byteStream .write (filter .getClass ().getSimpleName ().getBytes ());
0 commit comments