org.apache.cassandra.db

## Class Slice

- java.lang.Object
- - org.apache.cassandra.db.Slice

    public class Slice
    extends java.lang.Object

A slice represents the selection of a range of rows.

A slice has a start and an end bound that are both (potentially full) clustering prefixes. A slice selects every rows whose clustering is bigger than the slice start prefix but smaller than the end prefix. Both start and end can be either inclusive or exclusive.

### Nested Class Summary

Nested Classes
`static class` `Slice.Serializer`

### Field Summary

Fields
`static Slice` `ALL` The slice selecting all rows (of a given partition)
`static Slice.Serializer` `serializer`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`ClusteringBound` `close(boolean reversed)`
`ClusteringBound` `end()`
`boolean` `equals(java.lang.Object other)`
`Slice` `forPaging(ClusteringComparator comparator, Clustering lastReturned, boolean inclusive, boolean reversed)` Returns a slice for continuing paging from the last returned clustering prefix.
`int` `hashCode()`
`boolean` `includes(ClusteringComparator comparator, ClusteringPrefix bound)` Returns whether a given clustering or bound is included in this slice.
`boolean` `intersects(ClusteringComparator comparator, java.util.List<java.nio.ByteBuffer> minClusteringValues, java.util.List<java.nio.ByteBuffer> maxClusteringValues)` Given the per-clustering column minimum and maximum value a sstable contains, whether or not this slice potentially intersects that sstable or not.
`boolean` `isEmpty(ClusteringComparator comparator)` Return whether the slice is empty.
`static boolean` `isEmpty(ClusteringComparator comparator, ClusteringBound start, ClusteringBound end)` Return whether the slice formed by the two provided bound is empty or not.
`static Slice` `make(Clustering clustering)`
`static Slice` `make(ClusteringBound start, ClusteringBound end)`
`static Slice` `make(Clustering start, Clustering end)`
`static Slice` `make(ClusteringComparator comparator, java.lang.Object... values)`
`ClusteringBound` `open(boolean reversed)`
`ClusteringBound` `start()`
`java.lang.String` `toString(CFMetaData metadata)`
`java.lang.String` `toString(ClusteringComparator comparator)`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### serializer

    public static final Slice.Serializer serializer

#### ALL

    public static final Slice ALL

The slice selecting all rows (of a given partition)

### Method Detail

#### make

    public static Slice make(ClusteringBound start,
                             ClusteringBound end)

#### make

    public static Slice make(ClusteringComparator comparator,
                             java.lang.Object... values)

#### make

    public static Slice make(Clustering clustering)

#### make

    public static Slice make(Clustering start,
                             Clustering end)

#### start

    public ClusteringBound start()

#### end

    public ClusteringBound end()

#### open

    public ClusteringBound open(boolean reversed)

#### close

    public ClusteringBound close(boolean reversed)

#### isEmpty

    public boolean isEmpty(ClusteringComparator comparator)

Return whether the slice is empty.

Parameters:
  `comparator` - the comparator to compare the bounds.
Returns:
  whether the slice formed is empty or not.

#### isEmpty

    public static boolean isEmpty(ClusteringComparator comparator,
                                  ClusteringBound start,
                                  ClusteringBound end)

Return whether the slice formed by the two provided bound is empty or not.

Parameters:
  `comparator` - the comparator to compare the bounds.
  `start` - the start for the slice to consider. This must be a start bound.
  `end` - the end for the slice to consider. This must be an end bound.
Returns:
  whether the slice formed by `start` and `end` is empty or not.

#### includes

    public boolean includes(ClusteringComparator comparator,
                            ClusteringPrefix bound)

Returns whether a given clustering or bound is included in this slice.

Parameters:
  `comparator` - the comparator for the table this is a slice of.
  `bound` - the bound to test inclusion of.
Returns:
  whether `bound` is within the bounds of this slice.

#### forPaging

    public Slice forPaging(ClusteringComparator comparator,
                           Clustering lastReturned,
                           boolean inclusive,
                           boolean reversed)

Returns a slice for continuing paging from the last returned clustering prefix.

Parameters:
  `comparator` - the comparator for the table this is a filter for.
  `lastReturned` - the last clustering that was returned for the query we are paging for. The resulting slices will be such that only results coming stricly after `lastReturned` are returned (where coming after means "greater than" if `!reversed` and "lesser than" otherwise).
  `inclusive` - whether or not we want to include the `lastReturned` in the newly returned page of results.
  `reversed` - whether the query we're paging for is reversed or not.
Returns:
  a new slice that selects results coming after `lastReturned`, or `null` if paging the resulting slice selects nothing (i.e. if it originally selects nothing coming after `lastReturned`).

#### intersects

    public boolean intersects(ClusteringComparator comparator,
                              java.util.List<java.nio.ByteBuffer> minClusteringValues,
                              java.util.List<java.nio.ByteBuffer> maxClusteringValues)

Given the per-clustering column minimum and maximum value a sstable contains, whether or not this slice potentially intersects that sstable or not.

Parameters:
  `comparator` - the comparator for the table this is a slice of.
  `minClusteringValues` - the smallest values for each clustering column that a sstable contains.
  `maxClusteringValues` - the biggest values for each clustering column that a sstable contains.
Returns:
  whether the slice might intersects with the sstable having `minClusteringValues` and `maxClusteringValues`.

#### toString

    public java.lang.String toString(CFMetaData metadata)

#### toString

    public java.lang.String toString(ClusteringComparator comparator)

#### equals

    public boolean equals(java.lang.Object other)

Overrides:
  `equals` in class `java.lang.Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`