org.apache.cassandra.cql3.statements

## Class CQL3CasRequest

- java.lang.Object
- - org.apache.cassandra.cql3.statements.CQL3CasRequest

All Implemented Interfaces:
  CASRequest

    public class CQL3CasRequest
    extends java.lang.Object
    implements CASRequest

Processed CAS conditions and update on potentially multiple rows of the same partition.

### Field Summary

Fields
`CFMetaData` `cfm`
`boolean` `isBatch`
`DecoratedKey` `key`

### Constructor Summary

Constructors
Constructor and Description
`CQL3CasRequest(CFMetaData cfm, DecoratedKey key, boolean isBatch, PartitionColumns conditionColumns, boolean updatesRegularRows, boolean updatesStaticRow)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addConditions(Clustering clustering, java.util.Collection<ColumnCondition> conds, QueryOptions options)`
`void` `addExist(Clustering clustering)`
`void` `addNotExist(Clustering clustering)`
`void` `addRangeDeletion(Slice slice, ModificationStatement stmt, QueryOptions options, long timestamp)`
`void` `addRowUpdate(Clustering clustering, ModificationStatement stmt, QueryOptions options, long timestamp)`
`boolean` `appliesTo(FilteredPartition current)` Checks whether the conditions represented by this object applies provided the current state of the partition on which those conditions are.
`PartitionUpdate` `makeUpdates(FilteredPartition current)` The updates to perform of a CAS success.
`SinglePartitionReadCommand` `readCommand(int nowInSec)` The command to use to fetch the value to compare for the CAS.

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

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

### Field Detail

#### cfm

    public final CFMetaData cfm

#### key

    public final DecoratedKey key

#### isBatch

    public final boolean isBatch

### Constructor Detail

#### CQL3CasRequest

    public CQL3CasRequest(CFMetaData cfm,
                          DecoratedKey key,
                          boolean isBatch,
                          PartitionColumns conditionColumns,
                          boolean updatesRegularRows,
                          boolean updatesStaticRow)

### Method Detail

#### addRowUpdate

    public void addRowUpdate(Clustering clustering,
                             ModificationStatement stmt,
                             QueryOptions options,
                             long timestamp)

#### addRangeDeletion

    public void addRangeDeletion(Slice slice,
                                 ModificationStatement stmt,
                                 QueryOptions options,
                                 long timestamp)

#### addNotExist

    public void addNotExist(Clustering clustering)
                     throws InvalidRequestException

Throws:
  `InvalidRequestException`

#### addExist

    public void addExist(Clustering clustering)
                  throws InvalidRequestException

Throws:
  `InvalidRequestException`

#### addConditions

    public void addConditions(Clustering clustering,
                              java.util.Collection<ColumnCondition> conds,
                              QueryOptions options)
                       throws InvalidRequestException

Throws:
  `InvalidRequestException`

#### readCommand

    public SinglePartitionReadCommand readCommand(int nowInSec)

Description copied from interface: `CASRequest`
The command to use to fetch the value to compare for the CAS.

Specified by:
  `readCommand` in interface `CASRequest`

#### appliesTo

    public boolean appliesTo(FilteredPartition current)
                      throws InvalidRequestException

Checks whether the conditions represented by this object applies provided the current state of the partition on which those conditions are.

Specified by:
  `appliesTo` in interface `CASRequest`
Parameters:
  `current` - the partition with current data corresponding to these conditions. More precisely, this must be the result of executing the command returned by `readCommand(int)`. This can be empty but it should not be `null`.
Returns:
  whether the conditions represented by this object applies or not.
Throws:
  `InvalidRequestException`

#### makeUpdates

    public PartitionUpdate makeUpdates(FilteredPartition current)
                                throws InvalidRequestException

Description copied from interface: `CASRequest`
The updates to perform of a CAS success. The values fetched using the readFilter() are passed as argument.

Specified by:
  `makeUpdates` in interface `CASRequest`
Throws:
  `InvalidRequestException`