org.apache.cassandra.cql3

## Class Term.Terminal

- java.lang.Object
- - org.apache.cassandra.cql3.Term.Terminal

All Implemented Interfaces:
  Term

Direct Known Subclasses:
  Constants.Value, Maps.Value, Sets.Value, Term.MultiItemTerminal, Tuples.InValue

Enclosing interface:
  Term

    public abstract static class Term.Terminal
    extends java.lang.Object
    implements Term

A terminal term, one that can be reduced to a byte buffer directly. This includes most terms that don't have a bind marker (an exception being delayed call for non pure function that are NonTerminal even if they don't have bind markers). This can be only one of: - a constant value - a collection value Note that a terminal term will always have been type checked, and thus consumer can (and should) assume so.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.cassandra.cql3.Term

`Term.MultiColumnRaw, Term.MultiItemTerminal, Term.NonTerminal, Term.Raw, Term.Terminal`

### Constructor Summary

Constructors
Constructor and Description
`Terminal()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`Term.Terminal` `bind(QueryOptions options)` Bind the values in this term to the values contained in `values`.
`java.nio.ByteBuffer` `bindAndGet(QueryOptions options)` A shorter for bind(values).get().
`void` `collectMarkerSpecification(VariableSpecifications boundNames)` Collects the column specification for the bind variables in this Term.
`boolean` `containsBindMarker()` Whether or not that term contains at least one bind marker.
`abstract java.nio.ByteBuffer` `get(int protocolVersion)`
`java.util.Set<Function>` `getFunctions()`

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

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

### Constructor Detail

#### Terminal

    public Terminal()

### Method Detail

#### collectMarkerSpecification

    public void collectMarkerSpecification(VariableSpecifications boundNames)

Description copied from interface: `Term`
Collects the column specification for the bind variables in this Term. This is obviously a no-op if the term is Terminal.

Specified by:
  `collectMarkerSpecification` in interface `Term`
Parameters:
  `boundNames` - the variables specification where to collect the bind variables of this term in.

#### bind

    public Term.Terminal bind(QueryOptions options)

Description copied from interface: `Term`
Bind the values in this term to the values contained in `values`. This is obviously a no-op if the term is Terminal.

Specified by:
  `bind` in interface `Term`
Parameters:
  `options` - the values to bind markers to.
Returns:
  the result of binding all the variables of this NonTerminal (or 'this' if the term is terminal).

#### getFunctions

    public java.util.Set<Function> getFunctions()

Specified by:
  `getFunctions` in interface `Term`

#### containsBindMarker

    public boolean containsBindMarker()

Description copied from interface: `Term`
Whether or not that term contains at least one bind marker. Note that this is slightly different from being or not a NonTerminal, because calls to non pure functions will be NonTerminal (see #5616) even if they don't have bind markers.

Specified by:
  `containsBindMarker` in interface `Term`

#### get

    public abstract java.nio.ByteBuffer get(int protocolVersion)
                                     throws InvalidRequestException

Parameters:
  `protocolVersion` -
Returns:
  the serialized value of this terminal.
Throws:
  `InvalidRequestException`

#### bindAndGet

    public java.nio.ByteBuffer bindAndGet(QueryOptions options)
                                   throws InvalidRequestException

Description copied from interface: `Term`
A shorter for bind(values).get(). We expose it mainly because for constants it can avoids allocating a temporary object between the bind and the get (note that we still want to be able to separate bind and get for collections).

Specified by:
  `bindAndGet` in interface `Term`
Throws:
  `InvalidRequestException`