org.apache.cassandra.cql3.hooks

## Interface PreExecutionHook

    public interface PreExecutionHook

Run before the CQL Statement is executed in `QueryProcessor`. The CQLStatement returned from the process* methods is what is actually executed by the QueryProcessor.

### Method Summary

Methods
`BatchStatement` `processBatch(BatchStatement batch, BatchExecutionContext context)` Perform pre-processing on a CQL batch prior to it being executed by the QueryProcessor.
`CQLStatement` `processStatement(CQLStatement statement, ExecutionContext context)` Perform pre-processing on a CQL statement prior to it being executed by the QueryProcessor.

### Method Detail

#### processStatement

    CQLStatement processStatement(CQLStatement statement,
                                ExecutionContext context)
                                  throws RequestExecutionException,
                                         RequestValidationException

Perform pre-processing on a CQL statement prior to it being executed by the QueryProcessor. If required, implementations may modify the statement as the returned instance is what is actually executed.

Parameters:
  `statement` - the statement to perform pre-processing on
  `context` - execution context containing additional info about the operation and statement
Returns:
  the actual statement that will be executed, potentially a modification of the initial statement
Throws:
  `RequestExecutionException,` - RequestValidationException
  `RequestExecutionException`
  `RequestValidationException`

#### processBatch

    BatchStatement processBatch(BatchStatement batch,
                              BatchExecutionContext context)
                                throws RequestExecutionException,
                                       RequestValidationException

Perform pre-processing on a CQL batch prior to it being executed by the QueryProcessor. If required, implementations may modify the batch & its component statements as the returned instance is what is actually executed.

Parameters:
  `batch` - the CQL batch to perform pre-processing on
  `context` - execution context containing additional info about the operation and batch
Returns:
  the actual batch that will be executed, potentially a modification of the initial batch
Throws:
  `RequestExecutionException,` - RequestValidationException
  `RequestExecutionException`
  `RequestValidationException`