Term (apache-cassandra API)
Date: 2014-10-21

org.apache.cassandra.cql3

## Interface Term

- All Known Implementing Classes:
    AbstractMarker, Constants.Marker, Constants.Value, FunctionCall, Lists.DelayedValue, Lists.Marker, Lists.Value, Maps.DelayedValue, Maps.Marker, Maps.Value, Sets.DelayedValue, Sets.Marker, Sets.Value, Term.MultiItemTerminal, Term.NonTerminal, Term.Terminal, Tuples.DelayedValue, Tuples.InMarker, Tuples.InValue, Tuples.Marker, Tuples.Value, UserTypes.DelayedValue

      public interface Term

  A CQL3 term, i.e. a column value with or without bind variables. A Term can be either terminal or non terminal. A term object is one that is typed and is obtained from a raw term (Term.Raw) by poviding the actual receiver to which the term is supposed to be a value of.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `Term.MultiColumnRaw`
    `static class` | `Term.MultiItemTerminal`
    `static class` | `Term.NonTerminal` A non terminal term, i.e.
    `static interface` | `Term.Raw` A parsed, non prepared (thus untyped) term.
    `static class` | `Term.Terminal` A terminal term, one that can be reduced to a byte buffer directly.

  - ### Method Summary

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

- - ### Method Detail

    - #### collectMarkerSpecification

          void collectMarkerSpecification(VariableSpecifications boundNames)

      Collects the column specification for the bind variables in this Term. This is obviously a no-op if the term is Terminal.
      Parameters:
        `boundNames` - the variables specification where to collect the bind variables of this term in.

    - #### bind

          Term.Terminal bind(QueryOptions options)
                             throws InvalidRequestException

      Bind the values in this term to the values contained in `values`. This is obviously a no-op if the term is Terminal.
      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).
      Throws:
        `InvalidRequestException`

    - #### bindAndGet

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

      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).
      Throws:
        `InvalidRequestException`

    - #### containsBindMarker

          boolean containsBindMarker()

      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.

Copyright © 2014 The Apache Software Foundation