org.apache.cassandra.cql3.restrictions

## Class SingleColumnRestriction

- java.lang.Object
- - org.apache.cassandra.cql3.restrictions.SingleColumnRestriction

All Implemented Interfaces:
  Restriction, SingleRestriction

Direct Known Subclasses:
  SingleColumnRestriction.ContainsRestriction, SingleColumnRestriction.EQRestriction, SingleColumnRestriction.INRestriction, SingleColumnRestriction.IsNotNullRestriction, SingleColumnRestriction.LikeRestriction, SingleColumnRestriction.SliceRestriction

    public abstract class SingleColumnRestriction
    extends java.lang.Object
    implements SingleRestriction

### Nested Class Summary

Nested Classes
`static class` `SingleColumnRestriction.ContainsRestriction`
`static class` `SingleColumnRestriction.EQRestriction`
`static class` `SingleColumnRestriction.INRestriction`
`static class` `SingleColumnRestriction.InRestrictionWithMarker`
`static class` `SingleColumnRestriction.InRestrictionWithValues`
`static class` `SingleColumnRestriction.IsNotNullRestriction`
`static class` `SingleColumnRestriction.LikeRestriction`
`static class` `SingleColumnRestriction.SliceRestriction`
`static class` `SingleColumnRestriction.SuperColumnKeyEQRestriction`
`static class` `SingleColumnRestriction.SuperColumnKeyINRestriction`
`static class` `SingleColumnRestriction.SuperColumnKeyINRestrictionWithMarkers`
`static class` `SingleColumnRestriction.SuperColumnKeyINRestrictionWithValues`
`static class` `SingleColumnRestriction.SuperColumnKeySliceRestriction`
`static class` `SingleColumnRestriction.SuperColumnMultiEQRestriction` Super Column Compatibiltiy
`static class` `SingleColumnRestriction.SuperColumnMultiSliceRestriction`

### Field Summary

Fields
`protected ColumnDefinition` `columnDef` The definition of the column to which apply the restriction.

### Constructor Summary

Constructors
Constructor and Description
`SingleColumnRestriction(ColumnDefinition columnDef)`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected abstract SingleRestriction` `doMergeWith(SingleRestriction otherRestriction)`
`java.util.List<ColumnDefinition>` `getColumnDefs()` Returns the column definitions in position order.
`ColumnDefinition` `getFirstColumn()` Returns the definition of the first column.
`ColumnDefinition` `getLastColumn()` Returns the definition of the last column.
`boolean` `hasSupportingIndex(SecondaryIndexManager indexManager)` Check if the restriction is on indexed columns.
`protected abstract boolean` `isSupportedBy(Index index)` Check if this type of restriction is supported by the specified index.
`SingleRestriction` `mergeWith(SingleRestriction otherRestriction)` Merges this restriction with the specified one.

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

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

### Methods inherited from interface org.apache.cassandra.cql3.restrictions.SingleRestriction

`appendBoundTo, appendTo, hasBound, isContains, isEQ, isIN, isInclusive, isLIKE, isMultiColumn, isNotNull, isSlice`

### Methods inherited from interface org.apache.cassandra.cql3.restrictions.Restriction

`addFunctionsTo, addRowFilterTo, isOnToken`

### Field Detail

#### columnDef

    protected final ColumnDefinition columnDef

The definition of the column to which apply the restriction.

### Constructor Detail

#### SingleColumnRestriction

    public SingleColumnRestriction(ColumnDefinition columnDef)

### Method Detail

#### getColumnDefs

    public java.util.List<ColumnDefinition> getColumnDefs()

Description copied from interface: `Restriction`
Returns the column definitions in position order.

Specified by:
  `getColumnDefs` in interface `Restriction`
Returns:
  the column definitions in position order.

#### getFirstColumn

    public ColumnDefinition getFirstColumn()

Description copied from interface: `Restriction`
Returns the definition of the first column.

Specified by:
  `getFirstColumn` in interface `Restriction`
Returns:
  the definition of the first column.

#### getLastColumn

    public ColumnDefinition getLastColumn()

Description copied from interface: `Restriction`
Returns the definition of the last column.

Specified by:
  `getLastColumn` in interface `Restriction`
Returns:
  the definition of the last column.

#### hasSupportingIndex

    public boolean hasSupportingIndex(SecondaryIndexManager indexManager)

Description copied from interface: `Restriction`
Check if the restriction is on indexed columns.

Specified by:
  `hasSupportingIndex` in interface `Restriction`
Parameters:
  `indexManager` - the index manager
Returns:
  `true` if the restriction is on indexed columns, `false`

#### mergeWith

    public final SingleRestriction mergeWith(SingleRestriction otherRestriction)

Description copied from interface: `SingleRestriction`
Merges this restriction with the specified one.

Restriction are immutable. Therefore merging two restrictions result in a new one. The reason behind this choice is that it allow a great flexibility in the way the merging can done while preventing any side effect.

Specified by:
  `mergeWith` in interface `SingleRestriction`
Parameters:
  `otherRestriction` - the restriction to merge into this one
Returns:
  the restriction resulting of the merge

#### doMergeWith

    protected abstract SingleRestriction doMergeWith(SingleRestriction otherRestriction)

#### isSupportedBy

    protected abstract boolean isSupportedBy(Index index)

Check if this type of restriction is supported by the specified index.

Parameters:
  `index` - the secondary index
Returns:
  `true` this type of restriction is supported by the specified index, `false` otherwise.