@@ -42,9 +42,13 @@ private static void toParseableByteArray(ByteArrayOutputStream byteStream, Filte
4242 throws IOException {
4343 if (filter == null ) {
4444 throw new IllegalArgumentException ("Filter is null" );
45+ } else if (filter instanceof DependentColumnFilter ) {
46+ toParseableByteArray (byteStream , (DependentColumnFilter ) filter );
4547 } else if (filter instanceof CompareFilter ) {
4648 // RowFilter, ValueFilter, QualifierFilter
4749 toParseableByteArray (byteStream , (CompareFilter ) filter );
50+ } else if (filter instanceof SingleColumnValueExcludeFilter ) {
51+ toParseableByteArray (byteStream , (SingleColumnValueExcludeFilter ) filter );
4852 } else if (filter instanceof SingleColumnValueFilter ) {
4953 toParseableByteArray (byteStream , (SingleColumnValueFilter ) filter );
5054 } else if (filter instanceof PageFilter ) {
@@ -163,6 +167,25 @@ private static void toParseableByteArray(ByteArrayOutputStream byteStream,
163167 byteStream .write (')' );
164168 }
165169
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+
166189 // PageFilter(100);
167190 private static void toParseableByteArray (ByteArrayOutputStream byteStream , PageFilter filter )
168191 throws IOException {
@@ -181,6 +204,34 @@ private static void toParseableByteArray(ByteArrayOutputStream byteStream,
181204 byteStream .write (')' );
182205 }
183206
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+
184235 private static void toParseableByteArray (ByteArrayOutputStream byteStream ,
185236 ColumnPaginationFilter filter ) throws IOException {
186237 byteStream .write (filter .getClass ().getSimpleName ().getBytes ());
0 commit comments