## org.apache.cassandra.db
Class Column

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

All Implemented Interfaces:
  IColumn

Direct Known Subclasses:
  CounterColumn, CounterUpdateColumn, DeletedColumn, ExpiringColumn

    public class Column

extends java.lang.Object
implements IColumn

Column is immutable, which prevents all kinds of confusion in a multithreaded environment. (TODO: look at making SuperColumn immutable too. This is trickier but is probably doable with something like PCollections -- http://code.google.com

Field Summary
`protected java.nio.ByteBuffer` `name`
`protected long` `timestamp`
`protected java.nio.ByteBuffer` `value`

Fields inherited from interface org.apache.cassandra.db.IColumn
`MAX_NAME_LENGTH`

Constructor Summary
`Column(java.nio.ByteBuffer name, java.nio.ByteBuffer value)`
`Column(java.nio.ByteBuffer name, java.nio.ByteBuffer value, long timestamp)`

Method Summary
`void` `addColumn(IColumn column)`
`void` `addColumn(IColumn column, Allocator allocator)`
`IColumn` `diff(IColumn column)`
`boolean` `equals(java.lang.Object o)`
`int` `getLocalDeletionTime()`
`long` `getMarkedForDeleteAt()`
`java.lang.String` `getString(AbstractType comparator)`
`Column` `getSubColumn(java.nio.ByteBuffer columnName)`
`java.util.Collection<IColumn>` `getSubColumns()`
`int` `hashCode()`
`boolean` `hasIrrelevantData(int gcBefore)`
`boolean` `isLive()` For a simple column, live == !isMarkedForDelete.
`boolean` `isMarkedForDelete()`
`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.
`long` `maxTimestamp()` For a standard column, this is the same as timestamp().
`long` `mostRecentLiveChangeAt()`
`long` `mostRecentNonGCableChangeAt(int gcbefore)`
`java.nio.ByteBuffer` `name()`
`IColumn` `reconcile(IColumn column)`
`IColumn` `reconcile(IColumn column, Allocator allocator)`
`int` `serializationFlags()`
`int` `serializedSize()`
`static ColumnSerializer` `serializer()`
`int` `size()`
`long` `timestamp()`
`void` `updateDigest(java.security.MessageDigest digest)`
`void` `validateFields(CFMetaData metadata)`
`protected void` `validateName(CFMetaData metadata)`
`java.nio.ByteBuffer` `value()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### name

    protected final java.nio.ByteBuffer name

### value

    protected final java.nio.ByteBuffer value

### timestamp

    protected final long timestamp

Constructor Detail

### Column

    public Column(java.nio.ByteBuffer name,
                  java.nio.ByteBuffer value)

### Column

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

Method Detail

### serializer

    public static ColumnSerializer serializer()

### name

    public java.nio.ByteBuffer name()

  Specified by:
    `name` in interface `IColumn`

### getSubColumn

    public Column getSubColumn(java.nio.ByteBuffer columnName)

  Specified by:
    `getSubColumn` in interface `IColumn`

### value

    public java.nio.ByteBuffer value()

  Specified by:
    `value` in interface `IColumn`

### getSubColumns

    public java.util.Collection<IColumn> getSubColumns()

  Specified by:
    `getSubColumns` in interface `IColumn`

### timestamp

    public long timestamp()

  Specified by:
    `timestamp` in interface `IColumn`

### maxTimestamp

    public long maxTimestamp()

  Description copied from interface: `IColumn`
  For a standard column, this is the same as timestamp(). For a super column, this is the max column timestamp of the sub columns.

  Specified by:
    `maxTimestamp` in interface `IColumn`

### isMarkedForDelete

    public boolean isMarkedForDelete()

  Specified by:
    `isMarkedForDelete` in interface `IColumn`

### getMarkedForDeleteAt

    public long getMarkedForDeleteAt()

  Specified by:
    `getMarkedForDeleteAt` in interface `IColumn`

### mostRecentLiveChangeAt

    public long mostRecentLiveChangeAt()

  Specified by:
    `mostRecentLiveChangeAt` in interface `IColumn`

### mostRecentNonGCableChangeAt

    public long mostRecentNonGCableChangeAt(int gcbefore)

  Specified by:
    `mostRecentNonGCableChangeAt` in interface `IColumn`

### size

    public int size()

  Specified by:
    `size` in interface `IColumn`

### serializedSize

    public int serializedSize()

  Specified by:
    `serializedSize` in interface `IColumn`

### serializationFlags

    public int serializationFlags()

  Specified by:
    `serializationFlags` in interface `IColumn`

### addColumn

    public void addColumn(IColumn column)

  Specified by:
    `addColumn` in interface `IColumn`

### addColumn

    public void addColumn(IColumn column,
                          Allocator allocator)

  Specified by:
    `addColumn` in interface `IColumn`

### diff

    public IColumn diff(IColumn column)

  Specified by:
    `diff` in interface `IColumn`

### updateDigest

    public void updateDigest(java.security.MessageDigest digest)

  Specified by:
    `updateDigest` in interface `IColumn`

### getLocalDeletionTime

    public int getLocalDeletionTime()

  Specified by:
    `getLocalDeletionTime` in interface `IColumn`

### reconcile

    public IColumn reconcile(IColumn column)

  Specified by:
    `reconcile` in interface `IColumn`

### reconcile

    public IColumn reconcile(IColumn column,
                             Allocator allocator)

  Specified by:
    `reconcile` in interface `IColumn`

### equals

    public boolean equals(java.lang.Object o)

  Overrides:
    `equals` in class `java.lang.Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `java.lang.Object`

### 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`

### 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`

### getString

    public java.lang.String getString(AbstractType comparator)

  Specified by:
    `getString` in interface `IColumn`

### isLive

    public boolean isLive()

  Description copied from interface: `IColumn`
  For a simple column, live == !isMarkedForDelete. For a supercolumn, live means it has at least one subcolumn whose timestamp is greater than the supercolumn deleted-at time.

  Specified by:
    `isLive` in interface `IColumn`

### validateName

    protected void validateName(CFMetaData metadata)
                         throws MarshalException

  Throws:
    `MarshalException`

### validateFields

    public void validateFields(CFMetaData metadata)
                        throws MarshalException

  Specified by:
    `validateFields` in interface `IColumn`
  Throws:
    `MarshalException`

### hasIrrelevantData

    public boolean hasIrrelevantData(int gcBefore)

  Specified by:
    `hasIrrelevantData` in interface `IColumn`
  Returns:
    true if the column or any its subcolumns expired before @param gcBefore

Copyright © 2012 The Apache Software Foundation