org.apache.cassandra.io.sstable

## Class AbstractSSTableSimpleWriter

- java.lang.Object
- - org.apache.cassandra.io.sstable.AbstractSSTableSimpleWriter

- Direct Known Subclasses:
    SSTableSimpleUnsortedWriter, SSTableSimpleWriter

      public abstract class AbstractSSTableSimpleWriter
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ColumnFamily` | `columnFamily`
    `protected CounterId` | `counterid`
    `protected DecoratedKey` | `currentKey`
    `protected SuperColumn` | `currentSuperColumn`
    `protected java.io.File` | `directory`
    `protected CFMetaData` | `metadata`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractSSTableSimpleWriter(java.io.File directory, CFMetaData metadata, IPartitioner partitioner)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addColumn(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp)` Insert a new "regular" column to the current row (and super column if applicable).
    `void` | `addCounterColumn(java.nio.ByteBuffer name, long value)` Insert a new counter column to the current row (and super column if applicable).
    `void` | `addExpiringColumn(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp, int ttl, long expirationTimestampMS)` Insert a new expiring column to the current row (and super column if applicable).
    `abstract void` | `close()` Close this writer.
    `protected abstract ColumnFamily` | `getColumnFamily()`
    `protected SSTableWriter` | `getWriter()`
    `protected static java.lang.String` | `makeFilename(java.io.File directory, java.lang.String keyspace, java.lang.String columnFamily)`
    `void` | `newRow(java.nio.ByteBuffer key)` Start a new row whose key is `key`.
    `void` | `newSuperColumn(java.nio.ByteBuffer name)` Start a new super column with name `name`.
    `protected abstract void` | `writeRow(DecoratedKey key, ColumnFamily columnFamily)`

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

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

- - ### Field Detail

    - #### directory

          protected final java.io.File directory

    - #### metadata

          protected final CFMetaData metadata

    - #### currentKey

          protected DecoratedKey currentKey

    - #### columnFamily

          protected ColumnFamily columnFamily

    - #### currentSuperColumn

          protected SuperColumn currentSuperColumn

    - #### counterid

          protected final CounterId counterid

  - ### Constructor Detail

    - #### AbstractSSTableSimpleWriter

          public AbstractSSTableSimpleWriter(java.io.File directory,
                                     CFMetaData metadata,
                                     IPartitioner partitioner)

  - ### Method Detail

    - #### getWriter

          protected SSTableWriter getWriter()

    - #### makeFilename

          protected static java.lang.String makeFilename(java.io.File directory,
                                      java.lang.String keyspace,
                                      java.lang.String columnFamily)

    - #### newRow

          public void newRow(java.nio.ByteBuffer key)
                      throws java.io.IOException

      Start a new row whose key is `key`.
      Parameters:
        `key` - the row key
      Throws:
        `java.io.IOException`

    - #### newSuperColumn

          public void newSuperColumn(java.nio.ByteBuffer name)

      Start a new super column with name `name`.
      Parameters:
        `name` - the name for the super column

    - #### addColumn

          public void addColumn(java.nio.ByteBuffer name,
                       java.nio.ByteBuffer value,
                       long timestamp)

      Insert a new "regular" column to the current row (and super column if applicable).
      Parameters:
        `name` - the column name
        `value` - the column value
        `timestamp` - the column timestamp

    - #### addExpiringColumn

          public void addExpiringColumn(java.nio.ByteBuffer name,
                               java.nio.ByteBuffer value,
                               long timestamp,
                               int ttl,
                               long expirationTimestampMS)

      Insert a new expiring column to the current row (and super column if applicable).
      Parameters:
        `name` - the column name
        `value` - the column value
        `timestamp` - the column timestamp
        `ttl` - the column time to live in seconds
        `expirationTimestampMS` - the local expiration timestamp in milliseconds. This is the server time timestamp used for actually expiring the column, and as a consequence should be synchronized with the cassandra servers time. If `timestamp` represents the insertion time in microseconds (which is not required), this should be `(timestamp / 1000) + (ttl * 1000)`.

    - #### addCounterColumn

          public void addCounterColumn(java.nio.ByteBuffer name,
                              long value)

      Insert a new counter column to the current row (and super column if applicable).
      Parameters:
        `name` - the column name
        `value` - the value of the counter

    - #### close

          public abstract void close()
                              throws java.io.IOException

      Close this writer. This method should be called, otherwise the produced sstables are not guaranteed to be complete (and won't be in practice).
      Throws:
        `java.io.IOException`

    - #### writeRow

          protected abstract void writeRow(DecoratedKey key,
                      ColumnFamily columnFamily)
                                    throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getColumnFamily

          protected abstract ColumnFamily getColumnFamily()

Copyright © 2014 The Apache Software Foundation