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
    Modifier and Type | Class and Description
    --- | ---
    `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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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.

Copyright © 2018 The Apache Software Foundation