Row.SimpleBuilder (apache-cassandra API)
Date: 2018-02-14

org.apache.cassandra.db.rows

## Interface Row.SimpleBuilder

- All Known Implementing Classes:
    SimpleBuilders.RowBuilder
  Enclosing interface:
    Row

      public static interface Row.SimpleBuilder

  Row builder interface geared towards human.

  Where the `Row.Builder` deals with building rows efficiently from internal objects (`Cell`, `LivenessInfo`, ...), the `SimpleBuilder` is geared towards building rows from string column name and 'native' values (string for text, ints for numbers, et...). In particular, it is meant to be convenient, not efficient, and should be used only in place where performance is not of the utmost importance (it is used to build schema mutation for instance).

  Also note that contrarily to `Row.Builder`, the `SimpleBuilder` API has no `newRow()` method: it is expected that the clustering of the row built is provided by the constructor of the builder.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Row.SimpleBuilder` | `add(java.lang.String columnName, java.lang.Object value)` Adds a value to a given column.
    `Row.SimpleBuilder` | `appendAll(java.lang.String columnName, java.lang.Object value)` Appends new values to a given non-frozen collection column.
    `Row` | `build()` Returns the built row.
    `Row.SimpleBuilder` | `delete()` Deletes the whole row.
    `Row.SimpleBuilder` | `delete(java.lang.String columnName)` Removes the value for a given column (creating a tombstone).
    `Row.SimpleBuilder` | `noPrimaryKeyLivenessInfo()` Don't include any primary key `LivenessInfo` in the built row.
    `Row.SimpleBuilder` | `timestamp(long timestamp)` Sets the timestamp to use for the following additions.
    `Row.SimpleBuilder` | `ttl(int ttl)` Sets the ttl to use for the following additions.

- - ### Method Detail

    - #### timestamp

          Row.SimpleBuilder timestamp(long timestamp)

      Sets the timestamp to use for the following additions.

      Note that the for non-compact tables, this method must be called before any column addition for this timestamp to be used for the row `LivenessInfo`.

      Parameters:
        `timestamp` - the timestamp to use for following additions. If that timestamp hasn't been set, the current time in microseconds will be used.
      Returns:
        this builder.

    - #### ttl

          Row.SimpleBuilder ttl(int ttl)

      Sets the ttl to use for the following additions.

      Note that the for non-compact tables, this method must be called before any column addition for this ttl to be used for the row `LivenessInfo`.

      Parameters:
        `ttl` - the ttl to use for following additions. If that ttl hasn't been set, no ttl will be used.
      Returns:
        this builder.

    - #### add

          Row.SimpleBuilder add(java.lang.String columnName,
                                java.lang.Object value)

      Adds a value to a given column.
      Parameters:
        `columnName` - the name of the column for which to add a new value.
        `value` - the value to add, which must be of the proper type for `columnName`. This can be `null` in which case the this is equivalent to `delete(columnName)`.
      Returns:
        this builder.

    - #### appendAll

          Row.SimpleBuilder appendAll(java.lang.String columnName,
                                      java.lang.Object value)

      Appends new values to a given non-frozen collection column.

      This method is similar to `add()` but the collection elements added through this method are "appended" to any pre-exising elements. In other words, this is like `add()` except that it doesn't delete the previous value of the collection. This can only be called on non-frozen collection columns.

      Note that this method can be used in replacement of `add()` if you know that there can't be any pre-existing value for that column, in which case this is slightly less expensive as it avoid the collection tombstone inherent to `add()`.

      Parameters:
        `columnName` - the name of the column for which to add a new value, which must be a non-frozen collection.
        `value` - the value to add, which must be of the proper type for `columnName` (in other words, it must be a collection).
      Returns:
        this builder.
      Throws:
        `java.lang.IllegalArgumentException` - if columnName is not a non-frozen collection column.

    - #### delete

          Row.SimpleBuilder delete()

      Deletes the whole row.

      If called, this is generally the only method called on the builder (outside of `timestamp()`.

      Returns:
        this builder.

    - #### delete

          Row.SimpleBuilder delete(java.lang.String columnName)

      Removes the value for a given column (creating a tombstone).
      Parameters:
        `columnName` - the name of the column to delete.
      Returns:
        this builder.

    - #### noPrimaryKeyLivenessInfo

          Row.SimpleBuilder noPrimaryKeyLivenessInfo()

      Don't include any primary key `LivenessInfo` in the built row.
      Returns:
        this builder.

    - #### build

          Row build()

      Returns the built row.
      Returns:
        the built row.

Copyright © 2018 The Apache Software Foundation