docs: public static <C> SlicePredicate getPredicate(ColumnSlice<C> columns, Serializer<C> colSer) {
          // Get all the columns
          if (columns == null) {
              SlicePredicate predicate = new SlicePredicate();
              predicate.setSlice_range(new SliceRange(ByteBuffer.wrap(new byte[0]), ByteBuffer.wrap(new byte[0]), false,
                      Integer.MAX_VALUE));
              return predicate;
          }
          // Get a specific list of columns
          if (columns.getColumns() != null) {
              SlicePredicate predicate = new SlicePredicate();
              predicate.setColumn_namesIsSet(true);
              predicate.column_names = colSer.toBytesList(columns.getColumns());
              return predicate;
          }
          else {
              SlicePredicate predicate = new SlicePredicate();
              predicate.setSlice_range(new SliceRange((columns.getStartColumn() == null) ? ByteBuffer.wrap(new byte[0])
                      : ByteBuffer.wrap(colSer.toBytes(columns.getStartColumn())),
                      (columns.getEndColumn() == null) ? ByteBuffer.wrap(new byte[0]) : ByteBuffer.wrap(colSer
                              .toBytes(columns.getEndColumn())), columns.getReversed(), columns.getLimit()));
              return predicate;
          }
      }