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
|
Constructor Summary |
Column(java.nio.ByteBuffer name,
java.nio.ByteBuffer value)
|
Column(java.nio.ByteBuffer name,
java.nio.ByteBuffer value,
long timestamp)
|
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
name
protected final java.nio.ByteBuffer name
value
protected final java.nio.ByteBuffer value
timestamp
protected final long timestamp
Column
public Column(java.nio.ByteBuffer name,
java.nio.ByteBuffer value)
Column
public Column(java.nio.ByteBuffer name,
java.nio.ByteBuffer value,
long timestamp)
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
hasExpiredTombstones
public boolean hasExpiredTombstones(int gcBefore)
- Specified by:
hasExpiredTombstones
in interface IColumn
- Returns:
- true if the column or any its subcolumns expired before @param gcBefore
Copyright © 2012 The Apache Software Foundation