org.apache.cassandra.cql3

## Interface CQLStatement

All Known Implementing Classes:
  AlterKeyspaceStatement, AlterTableStatement, AlterUserStatement, AuthenticationStatement, AuthorizationStatement, BatchStatement, CreateIndexStatement, CreateKeyspaceStatement, CreateTableStatement, CreateTriggerStatement, CreateUserStatement, DeleteStatement, DropIndexStatement, DropKeyspaceStatement, DropTableStatement, DropTriggerStatement, DropUserStatement, GrantStatement, ListPermissionsStatement, ListUsersStatement, ModificationStatement, PermissionAlteringStatement, RevokeStatement, SchemaAlteringStatement, SelectStatement, TruncateStatement, UpdateStatement, UseStatement

    public interface CQLStatement

### Method Summary

Methods
`void` `checkAccess(ClientState state)` Perform any access verification necessary for the statement.
`ResultMessage` `execute(QueryState state, QueryOptions options)` Execute the statement and return the resulting result or null if there is no result.
`ResultMessage` `executeInternal(QueryState state)` Variante of execute used for internal query against the system tables, and thus only query the local node.
`int` `getBoundTerms()` Returns the number of bound terms in this statement.
`void` `validate(ClientState state)` Perform additional validation required by the statment.

### Method Detail

#### getBoundTerms

    int getBoundTerms()

Returns the number of bound terms in this statement.

#### checkAccess

    void checkAccess(ClientState state)
                     throws UnauthorizedException,
                            InvalidRequestException

Perform any access verification necessary for the statement.

Parameters:
  `state` - the current client state
Throws:
  `UnauthorizedException`
  `InvalidRequestException`

#### validate

    void validate(ClientState state)
                  throws RequestValidationException

Perform additional validation required by the statment. To be overriden by subclasses if needed.

Parameters:
  `state` - the current client state
Throws:
  `RequestValidationException`

#### execute

    ResultMessage execute(QueryState state,
                        QueryOptions options)
                          throws RequestValidationException,
                                 RequestExecutionException

Execute the statement and return the resulting result or null if there is no result.

Parameters:
  `state` - the current query state
  `options` - options for this query (consistency, variables, pageSize, ...)
Throws:
  `RequestValidationException`
  `RequestExecutionException`

#### executeInternal

    ResultMessage executeInternal(QueryState state)
                                  throws RequestValidationException,
                                         RequestExecutionException

Variante of execute used for internal query against the system tables, and thus only query the local node.

Parameters:
  `state` - the current query state
Throws:
  `RequestValidationException`
  `RequestExecutionException`