## 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
`protected ColumnFamily` `columnFamily`
`protected DecoratedKey` `currentKey`
`protected SuperColumn` `currentSuperColumn`
`protected java.io.File` `directory`
`protected CFMetaData` `metadata`
`protected NodeId` `nodeid`

Constructor Summary
`AbstractSSTableSimpleWriter(java.io.File directory, CFMetaData metadata)`

Method Summary
`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()`
`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

### nodeid

    protected final NodeId nodeid

Constructor Detail

### AbstractSSTableSimpleWriter

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

Method Detail

### getWriter

    protected SSTableWriter getWriter()
                               throws java.io.IOException

  Throws:
    `java.io.IOException`

### 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 © 2012 The Apache Software Foundation