org.apache.cassandra.db
Class ArrayBackedSortedColumns

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<E>
          extended by java.util.ArrayList<IColumn>
              extended by org.apache.cassandra.db.ArrayBackedSortedColumns
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<IColumn>, java.util.Collection<IColumn>, java.util.List<IColumn>, java.util.RandomAccess, ISortedColumns, IIterableColumns

public class ArrayBackedSortedColumns
extends java.util.ArrayList<IColumn>
implements ISortedColumns

A ISortedColumns backed by an ArrayList. This implementation is not synchronized and should only be used when thread-safety is not required. This implementation makes sense when the main operations performed are iterating over the map and adding columns (especially if insertion is in sorted order).

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.cassandra.db.ISortedColumns
ISortedColumns.Factory
 
Field Summary
static ISortedColumns.Factory factory
           
 
Fields inherited from class java.util.AbstractList
modCount
 
Method Summary
 void addAll(ISortedColumns cm, Allocator allocator)
          Adds all the columns of a given column map to this column map.
 void addColumn(IColumn column, Allocator allocator)
          AddColumn throws an exception if the column added does not sort after the last column in the map.
 ISortedColumns cloneMe()
          Shallow cloning of the column map.
static ISortedColumns.Factory factory()
           
 IColumn getColumn(java.nio.ByteBuffer name)
          Get a column given its name, returning null if the column is not present.
 java.util.SortedSet<java.nio.ByteBuffer> getColumnNames()
          Returns a set with the names of columns in this column map.
 AbstractType<?> getComparator()
           
 int getEstimatedColumnCount()
           
 ISortedColumns.Factory getFactory()
          Returns the factory used for this ISortedColumns implementation.
 java.util.Collection<IColumn> getReverseSortedColumns()
          Returns the columns of this column map as a collection.
 java.util.Collection<IColumn> getSortedColumns()
          Returns the columns of this column map as a collection.
 boolean isInsertReversed()
          Returns if this map only support inserts in reverse order.
 java.util.Iterator<IColumn> iterator()
           
 void removeColumn(java.nio.ByteBuffer name)
          Remove if present a column by name.
 boolean replace(IColumn oldColumn, IColumn newColumn)
          Replace oldColumn if present by newColumn.
 java.util.Iterator<IColumn> reverseIterator()
          Returns an iterator that iterates over the columns of this map in reverse order.
 
Methods inherited from class java.util.ArrayList
add, add, addAll, addAll, clear, clone, contains, ensureCapacity, get, indexOf, isEmpty, lastIndexOf, remove, remove, removeRange, set, size, toArray, toArray, trimToSize
 
Methods inherited from class java.util.AbstractList
equals, hashCode, listIterator, listIterator, subList
 
Methods inherited from class java.util.AbstractCollection
containsAll, removeAll, retainAll, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.cassandra.db.ISortedColumns
clear, isEmpty, size
 
Methods inherited from interface java.util.List
containsAll, equals, hashCode, listIterator, listIterator, removeAll, retainAll, subList
 

Field Detail

factory

public static final ISortedColumns.Factory factory
Method Detail

factory

public static ISortedColumns.Factory factory()

getFactory

public ISortedColumns.Factory getFactory()
Description copied from interface: ISortedColumns
Returns the factory used for this ISortedColumns implementation.

Specified by:
getFactory in interface ISortedColumns

getComparator

public AbstractType<?> getComparator()
Specified by:
getComparator in interface IIterableColumns

cloneMe

public ISortedColumns cloneMe()
Description copied from interface: ISortedColumns
Shallow cloning of the column map.

Specified by:
cloneMe in interface ISortedColumns

isInsertReversed

public boolean isInsertReversed()
Description copied from interface: ISortedColumns
Returns if this map only support inserts in reverse order.

Specified by:
isInsertReversed in interface ISortedColumns

getColumn

public IColumn getColumn(java.nio.ByteBuffer name)
Description copied from interface: ISortedColumns
Get a column given its name, returning null if the column is not present.

Specified by:
getColumn in interface ISortedColumns

addColumn

public void addColumn(IColumn column,
                      Allocator allocator)
AddColumn throws an exception if the column added does not sort after the last column in the map. The reasoning is that this implementation can get slower if too much insertions are done in unsorted order and right now we only use it when *all* insertion (with this method) are done in sorted order. The assertion throwing is thus a protection against performance regression without knowing about (we can revisit that decision later if we have use cases where most insert are in sorted order but a few are not).

Specified by:
addColumn in interface ISortedColumns

addAll

public void addAll(ISortedColumns cm,
                   Allocator allocator)
Description copied from interface: ISortedColumns
Adds all the columns of a given column map to this column map. This is equivalent to: for (Column c : cm) add(c); but is potentially faster.

Specified by:
addAll in interface ISortedColumns

replace

public boolean replace(IColumn oldColumn,
                       IColumn newColumn)
Description copied from interface: ISortedColumns
Replace oldColumn if present by newColumn. Returns true if oldColumn was present and thus replaced. oldColumn and newColumn should have the same name.

Specified by:
replace in interface ISortedColumns

getSortedColumns

public java.util.Collection<IColumn> getSortedColumns()
Description copied from interface: ISortedColumns
Returns the columns of this column map as a collection. The columns in the returned collection should be sorted as the columns in this map.

Specified by:
getSortedColumns in interface ISortedColumns

getReverseSortedColumns

public java.util.Collection<IColumn> getReverseSortedColumns()
Description copied from interface: ISortedColumns
Returns the columns of this column map as a collection. The columns in the returned collection should be sorted in reverse order of the columns in this map.

Specified by:
getReverseSortedColumns in interface ISortedColumns

removeColumn

public void removeColumn(java.nio.ByteBuffer name)
Description copied from interface: ISortedColumns
Remove if present a column by name.

Specified by:
removeColumn in interface ISortedColumns

getColumnNames

public java.util.SortedSet<java.nio.ByteBuffer> getColumnNames()
Description copied from interface: ISortedColumns
Returns a set with the names of columns in this column map. The resulting set is sorted and the order is the one of the columns in this column map.

Specified by:
getColumnNames in interface ISortedColumns

getEstimatedColumnCount

public int getEstimatedColumnCount()
Specified by:
getEstimatedColumnCount in interface IIterableColumns

iterator

public java.util.Iterator<IColumn> iterator()
Specified by:
iterator in interface java.lang.Iterable<IColumn>
Specified by:
iterator in interface java.util.Collection<IColumn>
Specified by:
iterator in interface java.util.List<IColumn>
Overrides:
iterator in class java.util.AbstractList<IColumn>

reverseIterator

public java.util.Iterator<IColumn> reverseIterator()
Description copied from interface: ISortedColumns
Returns an iterator that iterates over the columns of this map in reverse order.

Specified by:
reverseIterator in interface ISortedColumns


Copyright © 2011 The Apache Software Foundation