org.apache.cassandra.db

## Class ExpiringColumn

- java.lang.Object
- - org.apache.cassandra.db.Column
  - - org.apache.cassandra.db.ExpiringColumn

- All Implemented Interfaces:
    IColumn, OnDiskAtom

      public class ExpiringColumn
      extends Column

  Alternative to Column that have an expiring time. ExpiringColumn is immutable (as Column is). Note that ExpiringColumn does not override Column.getMarkedForDeleteAt, which means that it's in the somewhat unintuitive position of being deleted (after its expiration) without having a time-at-which-it-became-deleted. (Because ttl is a server-side measurement, we can't mix it with the timestamp field, which is client-supplied and whose resolution we can't assume anything about.)

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.cassandra.db.OnDiskAtom

      `OnDiskAtom.Serializer`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MAX_TTL`

    - ### Fields inherited from class org.apache.cassandra.db.Column

      `name, timestamp, value`

    - ### Fields inherited from interface org.apache.cassandra.db.IColumn

      `MAX_NAME_LENGTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExpiringColumn(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp, int timeToLive)`
    `ExpiringColumn(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp, int timeToLive, int localExpirationTime)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static Column` | `create(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp, int timeToLive, int localExpirationTime, int expireBefore, IColumnSerializer.Flag flag)`
    `int` | `dataSize()` the size of user-provided data, not including internal overhead
    `boolean` | `equals(java.lang.Object o)`
    `int` | `getLocalDeletionTime()`
    `long` | `getMarkedForDeleteAt()`
    `java.lang.String` | `getString(AbstractType<?> comparator)`
    `int` | `getTimeToLive()`
    `int` | `hashCode()`
    `IColumn` | `localCopy(ColumnFamilyStore cfs)` clones the column for the row cache, interning column names and making copies of other underlying byte buffers
    `IColumn` | `localCopy(ColumnFamilyStore cfs, Allocator allocator)` clones the column for the memtable, interning column names and making copies of other underlying byte buffers.
    `int` | `serializationFlags()`
    `int` | `serializedSize(TypeSizes typeSizes)`
    `void` | `updateDigest(java.security.MessageDigest digest)`
    `void` | `validateFields(CFMetaData metadata)`

    - ### Methods inherited from class org.apache.cassandra.db.Column

      `addColumn, addColumn, create, create, create, create, create, create, diff, getSubColumn, getSubColumns, hasIrrelevantData, isLive, isMarkedForDelete, maxTimestamp, minTimestamp, mostRecentLiveChangeAt, mostRecentNonGCableChangeAt, name, onDiskSerializer, reconcile, reconcile, serializedSizeForSSTable, serializer, timestamp, validateName, value`

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

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

- - ### Field Detail

    - #### MAX_TTL

          public static final int MAX_TTL

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ExpiringColumn

          public ExpiringColumn(java.nio.ByteBuffer name,
                        java.nio.ByteBuffer value,
                        long timestamp,
                        int timeToLive)

    - #### ExpiringColumn

          public ExpiringColumn(java.nio.ByteBuffer name,
                        java.nio.ByteBuffer value,
                        long timestamp,
                        int timeToLive,
                        int localExpirationTime)

  - ### Method Detail

    - #### create

          public static Column create(java.nio.ByteBuffer name,
                      java.nio.ByteBuffer value,
                      long timestamp,
                      int timeToLive,
                      int localExpirationTime,
                      int expireBefore,
                      IColumnSerializer.Flag flag)

      Returns:
        Either a DeletedColumn, or an ExpiringColumn.

    - #### getTimeToLive

          public int getTimeToLive()

    - #### dataSize

          public int dataSize()

      Description copied from interface: `IColumn`
      the size of user-provided data, not including internal overhead
      Specified by:
        `dataSize` in interface `IColumn`
      Overrides:
        `dataSize` in class `Column`

    - #### serializedSize

          public int serializedSize(TypeSizes typeSizes)

      Specified by:
        `serializedSize` in interface `OnDiskAtom`
      Overrides:
        `serializedSize` in class `Column`

    - #### updateDigest

          public void updateDigest(java.security.MessageDigest digest)

      Specified by:
        `updateDigest` in interface `OnDiskAtom`
      Overrides:
        `updateDigest` in class `Column`

    - #### getLocalDeletionTime

          public int getLocalDeletionTime()

      Specified by:
        `getLocalDeletionTime` in interface `OnDiskAtom`
      Overrides:
        `getLocalDeletionTime` in class `Column`

    - #### localCopy

          public IColumn localCopy(ColumnFamilyStore cfs)

      Description copied from interface: `IColumn`
      clones the column for the row cache, interning column names and making copies of other underlying byte buffers
      Specified by:
        `localCopy` in interface `IColumn`
      Overrides:
        `localCopy` in class `Column`

    - #### localCopy

          public IColumn localCopy(ColumnFamilyStore cfs,
                          Allocator allocator)

      Description copied from interface: `IColumn`
      clones the column for the memtable, interning column names and making copies of other underlying byte buffers. Unlike the other localCopy, this uses Allocator to allocate values in contiguous memory regions, which helps avoid heap fragmentation.
      Specified by:
        `localCopy` in interface `IColumn`
      Overrides:
        `localCopy` in class `Column`

    - #### getString

          public java.lang.String getString(AbstractType<?> comparator)

      Specified by:
        `getString` in interface `IColumn`
      Overrides:
        `getString` in class `Column`

    - #### getMarkedForDeleteAt

          public long getMarkedForDeleteAt()

      Specified by:
        `getMarkedForDeleteAt` in interface `IColumn`
      Overrides:
        `getMarkedForDeleteAt` in class `Column`

    - #### serializationFlags

          public int serializationFlags()

      Specified by:
        `serializationFlags` in interface `IColumn`
      Overrides:
        `serializationFlags` in class `Column`

    - #### validateFields

          public void validateFields(CFMetaData metadata)
                              throws MarshalException

      Specified by:
        `validateFields` in interface `IColumn`
      Specified by:
        `validateFields` in interface `OnDiskAtom`
      Overrides:
        `validateFields` in class `Column`
      Throws:
        `MarshalException`

    - #### equals

          public boolean equals(java.lang.Object o)

      Overrides:
        `equals` in class `Column`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Column`

Copyright © 2014 The Apache Software Foundation