me.prettyprint.cassandra.service.template
Class ColumnFamilyTemplate<K,N>

java.lang.Object
  extended by me.prettyprint.cassandra.service.template.AbstractColumnFamilyTemplate<K,N>
      extended by me.prettyprint.cassandra.service.template.ColumnFamilyTemplate<K,N>
Type Parameters:
K - The column family key type
N - The column family name type
Direct Known Subclasses:
ThriftColumnFamilyTemplate

public abstract class ColumnFamilyTemplate<K,N>
extends AbstractColumnFamilyTemplate<K,N>

This applies a Template Method pattern, much like Spring's JdbcTemplate, to Cassandra. The ColumnFamilyTemplate instance maintains many of the fields in common between various query/update operations so that they do not need to be constantly passed for every operation on the column family. These include the keyspace, column family name, key serializer, and the column name serializer (for standard column name or the super column name). The Java generic types of the ColumnFamilyTemplate class itself are limited to the key and column name type. It defers the generic types for super column child types to the individual update/query operation.

Author:
david, zznate

Field Summary
 
Fields inherited from class me.prettyprint.cassandra.service.template.AbstractColumnFamilyTemplate
activeSlicePredicate, ALL_COLUMNS_COUNT, ALL_COLUMNS_END, ALL_COLUMNS_START, batched, clock, columnFactory, columnFamily, columnParent, columnValueSerializers, exceptionsTranslator, keySerializer, keyspace, topSerializer
 
Constructor Summary
ColumnFamilyTemplate(Keyspace keyspace, String columnFamily, Serializer<K> keySerializer, Serializer<N> topSerializer)
           
 
Method Summary
 int countColumns(K key)
           
 int countColumns(K key, N start, N end, int max)
          Counts columns in the specified range of a standard column family
 ColumnFamilyUpdater<K,N> createUpdater(K key)
           
 ColumnFamilyUpdater<K,N> createUpdater(K key, Mutator<K> mutator)
           
protected abstract  ColumnFamilyResult<K,N> doExecuteMultigetSlice(Iterable<K> keys, HSlicePredicate<N> workingSlicePredicate)
           
protected abstract
<V> MappedColumnFamilyResult<K,N,V>
doExecuteMultigetSlice(Iterable<K> keys, HSlicePredicate<N> workingSlicePredicate, ColumnFamilyRowMapper<K,N,V> mapper)
           
protected abstract  ColumnFamilyResult<K,N> doExecuteSlice(K key, HSlicePredicate<N> workingSlicePredicate)
           
protected abstract
<T> T
doExecuteSlice(K key, HSlicePredicate<N> predicate, ColumnFamilyRowMapper<K,N,T> mapper)
           
 boolean isColumnsExist(K key)
          Checks if there are any columns at a row specified by key in a standard column family
 ColumnFamilyResult<K,N> queryColumns(Iterable<K> keys)
           
<V> MappedColumnFamilyResult<K,N,V>
queryColumns(Iterable<K> keys, ColumnFamilyRowMapper<K,N,V> mapper)
           
<V> MappedColumnFamilyResult<K,N,V>
queryColumns(Iterable<K> keys, HSlicePredicate<N> predicate, ColumnFamilyRowMapper<K,N,V> mapper)
           
<V> MappedColumnFamilyResult<K,N,V>
queryColumns(Iterable<K> keys, List<N> columns, ColumnFamilyRowMapper<K,N,V> mapper)
           
 ColumnFamilyResult<K,N> queryColumns(K key)
           
<T> T
queryColumns(K key, ColumnFamilyRowMapper<K,N,T> mapper)
           
 ColumnFamilyResult<K,N> queryColumns(K key, HSlicePredicate<N> predicate)
           
<T> T
queryColumns(K key, HSlicePredicate<N> predicate, ColumnFamilyRowMapper<K,N,T> mapper)
          Queries a range of columns at the given key and maps them to an object of type OBJ using the given mapping object
 ColumnFamilyResult<K,N> queryColumns(K key, List<N> columns)
           
<T> T
queryColumns(K key, List<N> columns, ColumnFamilyRowMapper<K,N,T> mapper)
          Queries all columns at a given key and maps them to an object of type OBJ using the given mapping object
<V> HColumn<N,V>
querySingleColumn(K key, N columnName, Class<V> valueClass)
           
<V> HColumn<N,V>
querySingleColumn(K key, N columnName, Serializer<V> valueSerializer)
           
 ColumnFamilyTemplate<K,N> setBatched(boolean batched)
           
 void update(ColumnFamilyUpdater<K,N> updater)
           
 
Methods inherited from class me.prettyprint.cassandra.service.template.AbstractColumnFamilyTemplate
addColumn, createMutator, deleteColumn, deleteColumn, deleteRow, deleteRow, executeBatch, executeIfNotBatched, executeIfNotBatched, getClock, getColumnFamily, getEffectiveClock, getKeySerializer, getTopSerializer, getValueSerializer, isBatched, setClock, setColumnFactory, setCount, setExceptionsTranslator
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ColumnFamilyTemplate

public ColumnFamilyTemplate(Keyspace keyspace,
                            String columnFamily,
                            Serializer<K> keySerializer,
                            Serializer<N> topSerializer)
Method Detail

setBatched

public ColumnFamilyTemplate<K,N> setBatched(boolean batched)
Overrides:
setBatched in class AbstractColumnFamilyTemplate<K,N>

createUpdater

public ColumnFamilyUpdater<K,N> createUpdater(K key)

createUpdater

public ColumnFamilyUpdater<K,N> createUpdater(K key,
                                              Mutator<K> mutator)

update

public void update(ColumnFamilyUpdater<K,N> updater)

isColumnsExist

public boolean isColumnsExist(K key)
Checks if there are any columns at a row specified by key in a standard column family

Parameters:
key -
Returns:
true if columns exist

countColumns

public int countColumns(K key)
Parameters:
key -
Returns:
the number of columns in a standard column family at the specified row key

countColumns

public int countColumns(K key,
                        N start,
                        N end,
                        int max)
Counts columns in the specified range of a standard column family

Parameters:
key -
start -
end -
max -
Returns:

queryColumns

public ColumnFamilyResult<K,N> queryColumns(K key)

queryColumns

public ColumnFamilyResult<K,N> queryColumns(Iterable<K> keys)

queryColumns

public <T> T queryColumns(K key,
                          ColumnFamilyRowMapper<K,N,T> mapper)

queryColumns

public <T> T queryColumns(K key,
                          HSlicePredicate<N> predicate,
                          ColumnFamilyRowMapper<K,N,T> mapper)
Queries a range of columns at the given key and maps them to an object of type OBJ using the given mapping object

Type Parameters:
T -
Parameters:
key -
start -
end -
mapper -
Returns:

queryColumns

public <T> T queryColumns(K key,
                          List<N> columns,
                          ColumnFamilyRowMapper<K,N,T> mapper)
Queries all columns at a given key and maps them to an object of type OBJ using the given mapping object

Type Parameters:
T -
Parameters:
key -
columns -
mapper -
Returns:

queryColumns

public ColumnFamilyResult<K,N> queryColumns(K key,
                                            List<N> columns)

queryColumns

public ColumnFamilyResult<K,N> queryColumns(K key,
                                            HSlicePredicate<N> predicate)

queryColumns

public <V> MappedColumnFamilyResult<K,N,V> queryColumns(Iterable<K> keys,
                                                        ColumnFamilyRowMapper<K,N,V> mapper)

queryColumns

public <V> MappedColumnFamilyResult<K,N,V> queryColumns(Iterable<K> keys,
                                                        HSlicePredicate<N> predicate,
                                                        ColumnFamilyRowMapper<K,N,V> mapper)

queryColumns

public <V> MappedColumnFamilyResult<K,N,V> queryColumns(Iterable<K> keys,
                                                        List<N> columns,
                                                        ColumnFamilyRowMapper<K,N,V> mapper)

querySingleColumn

public <V> HColumn<N,V> querySingleColumn(K key,
                                          N columnName,
                                          Class<V> valueClass)

querySingleColumn

public <V> HColumn<N,V> querySingleColumn(K key,
                                          N columnName,
                                          Serializer<V> valueSerializer)

doExecuteSlice

protected abstract <T> T doExecuteSlice(K key,
                                        HSlicePredicate<N> predicate,
                                        ColumnFamilyRowMapper<K,N,T> mapper)

doExecuteSlice

protected abstract ColumnFamilyResult<K,N> doExecuteSlice(K key,
                                                          HSlicePredicate<N> workingSlicePredicate)

doExecuteMultigetSlice

protected abstract ColumnFamilyResult<K,N> doExecuteMultigetSlice(Iterable<K> keys,
                                                                  HSlicePredicate<N> workingSlicePredicate)

doExecuteMultigetSlice

protected abstract <V> MappedColumnFamilyResult<K,N,V> doExecuteMultigetSlice(Iterable<K> keys,
                                                                              HSlicePredicate<N> workingSlicePredicate,
                                                                              ColumnFamilyRowMapper<K,N,V> mapper)


Copyright © 2011. All Rights Reserved.