public static SliceQueryFilter fromSCSliceFilter(CellNameType type, ByteBuffer scName, SliceQueryFilter filter)
{
assert filter.slices.length == 1;
if (scName == null)
{
CBuilder builder = type.builder();
Composite start = filter.start().isEmpty()
? Composites.EMPTY
: builder.buildWith(filter.start().toByteBuffer()).withEOC(filter.reversed ? Composite.EOC.END : Composite.EOC.START);
Composite finish = filter.finish().isEmpty()
? Composites.EMPTY
: builder.buildWith(filter.finish().toByteBuffer()).withEOC(filter.reversed ? Composite.EOC.START : Composite.EOC.END);
return new SliceQueryFilter(start, finish, filter.reversed, filter.count, 1);
}
else
{
CBuilder builder = type.builder().add(scName);
Composite start = filter.start().isEmpty()
? builder.build().withEOC(filter.reversed ? Composite.EOC.END : Composite.EOC.START)
: builder.buildWith(filter.start().toByteBuffer());
Composite end = filter.finish().isEmpty()
? builder.build().withEOC(filter.reversed ? Composite.EOC.START : Composite.EOC.END)
: builder.buildWith(filter.finish().toByteBuffer());
return new SliceQueryFilter(start, end, filter.reversed, filter.count);
}
}
}