org.apache.cassandra.db
Class SuperColumn

java.lang.Object
  extended by org.apache.cassandra.db.AbstractColumnContainer
      extended by org.apache.cassandra.db.SuperColumn
All Implemented Interfaces:
java.lang.Iterable<IColumn>, IColumn, IColumnContainer, IIterableColumns

public class SuperColumn
extends AbstractColumnContainer
implements IColumn


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.cassandra.db.AbstractColumnContainer
AbstractColumnContainer.DeletionInfo
 
Field Summary
 
Fields inherited from class org.apache.cassandra.db.AbstractColumnContainer
columns, deletionInfo
 
Fields inherited from interface org.apache.cassandra.db.IColumn
MAX_NAME_LENGTH
 
Constructor Summary
SuperColumn(java.nio.ByteBuffer name, AbstractType comparator)
           
 
Method Summary
 void addColumn(IColumn column, Allocator allocator)
           
 IColumn cloneMe()
           
 SuperColumn cloneMeShallow()
           
 IColumn diff(IColumn columnNew)
           
 java.lang.String getString(AbstractType comparator)
           
 IColumn getSubColumn(java.nio.ByteBuffer columnName)
           
 java.util.Collection<IColumn> getSubColumns()
           
 boolean isLive()
          For a simple column, live == !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()
           
 java.nio.ByteBuffer name()
           
 IColumn reconcile(IColumn c)
           
 IColumn reconcile(IColumn c, Allocator allocator)
           
 int serializationFlags()
           
 int serializedSize()
          This returns the size of the super-column when serialized.
static org.apache.cassandra.db.SuperColumnSerializer serializer(AbstractType comparator)
           
 int size()
          This calculates the exact size of the sub columns on the fly
 long timestamp()
           
 void updateDigest(java.security.MessageDigest digest)
           
 void validateFields(CFMetaData metadata)
           
 java.nio.ByteBuffer value()
           
 
Methods inherited from class org.apache.cassandra.db.AbstractColumnContainer
addAll, addColumn, delete, delete, getColumn, getColumnCount, getColumnNames, getComparator, getEstimatedColumnCount, getLiveColumnCount, getLocalDeletionTime, getMarkedForDeleteAt, getReverseSortedColumns, getSortedColumns, hasExpiredTombstones, isEmpty, isMarkedForDelete, iterator, maybeResetDeletionTimes, remove, replace, retainAll
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.cassandra.db.IColumn
addColumn, getLocalDeletionTime, getMarkedForDeleteAt, hasExpiredTombstones, isMarkedForDelete
 

Constructor Detail

SuperColumn

public SuperColumn(java.nio.ByteBuffer name,
                   AbstractType comparator)
Method Detail

serializer

public static org.apache.cassandra.db.SuperColumnSerializer serializer(AbstractType comparator)

cloneMeShallow

public SuperColumn cloneMeShallow()

cloneMe

public IColumn cloneMe()

name

public java.nio.ByteBuffer name()
Specified by:
name in interface IColumn

getSubColumns

public java.util.Collection<IColumn> getSubColumns()
Specified by:
getSubColumns in interface IColumn

getSubColumn

public IColumn getSubColumn(java.nio.ByteBuffer columnName)
Specified by:
getSubColumn in interface IColumn

size

public int size()
This calculates the exact size of the sub columns on the fly

Specified by:
size in interface IColumn

serializedSize

public int serializedSize()
This returns the size of the super-column when serialized.

Specified by:
serializedSize in interface IColumn
See Also:
IColumn.serializedSize()

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

mostRecentLiveChangeAt

public long mostRecentLiveChangeAt()
Specified by:
mostRecentLiveChangeAt in interface IColumn

value

public java.nio.ByteBuffer value()
Specified by:
value in interface IColumn

addColumn

public void addColumn(IColumn column,
                      Allocator allocator)
Specified by:
addColumn in interface IColumn
Specified by:
addColumn in interface IColumnContainer
Overrides:
addColumn in class AbstractColumnContainer

diff

public IColumn diff(IColumn columnNew)
Specified by:
diff in interface IColumn

updateDigest

public void updateDigest(java.security.MessageDigest digest)
Specified by:
updateDigest 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

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

reconcile

public IColumn reconcile(IColumn c)
Specified by:
reconcile in interface IColumn

reconcile

public IColumn reconcile(IColumn c,
                         Allocator allocator)
Specified by:
reconcile in interface IColumn

serializationFlags

public int serializationFlags()
Specified by:
serializationFlags in interface IColumn

validateFields

public void validateFields(CFMetaData metadata)
                    throws MarshalException
Specified by:
validateFields in interface IColumn
Throws:
MarshalException


Copyright © 2011 The Apache Software Foundation