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 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.
      • deletePrevious

        Row.SimpleBuilder deletePrevious()
        Deletes the whole row with a timestamp that is just before the new data's timestamp, to make sure no expired data remains on the row.
        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.