me.prettyprint.cassandra.model
Class MutatorImpl<K>

java.lang.Object
  extended by me.prettyprint.cassandra.model.MutatorImpl<K>
All Implemented Interfaces:
Mutator<K>

public final class MutatorImpl<K>
extends Object
implements Mutator<K>

A Mutator inserts or deletes values from the cluster. There are two main ways to use a mutator: 1. Use the insert/delete methods to immediately insert of delete values. or 2. Use the addInsertion/addDeletion methods to schedule batch operations and then execute() all of them in batch. The class is not thread-safe.

Author:
Ran Tavory, zznate, patricioe

Field Summary
protected  Serializer<K> keySerializer
           
 
Constructor Summary
MutatorImpl(Keyspace keyspace)
           
MutatorImpl(Keyspace keyspace, BatchSizeHint sizeHint)
           
MutatorImpl(Keyspace keyspace, Serializer<K> keySerializer)
           
MutatorImpl(Keyspace keyspace, Serializer<K> keySerializer, BatchSizeHint sizeHint)
           
 
Method Summary
<N> Mutator<K>
addCounter(K key, String cf, HCounterColumn<N> c)
          Schedule an increment of a CounterColumn to be inserted in batch mode by Mutator.execute()
<SN,N> Mutator<K>
addCounter(K key, String cf, HCounterSuperColumn<SN,N> sc)
          Schedule an increment of a SuperColumn to be inserted in batch mode by Mutator.execute()
<N> Mutator<K>
addCounterDeletion(K key, String cf)
          Alternate form for easy deletion of the whole row.
<N> Mutator<K>
addCounterDeletion(K key, String cf, N counterColumnName, Serializer<N> nameSerializer)
          Adds a Deletion to the underlying batch_mutate call.
<SN,N> Mutator<K>
addCounterSubDeletion(K key, String cf, HCounterSuperColumn<SN,N> sc)
          Schedule a counter deletion.
<N> Mutator<K>
addDeletion(Iterable<K> keys, String cf)
          Convenience methods to delete a list of rows.
<N> Mutator<K>
addDeletion(Iterable<K> keys, String cf, long clock)
          Convenience methods to delete a list of rows.
<N> Mutator<K>
addDeletion(K key, String cf)
          Alternate form for easy deletion of the whole row.
<N> Mutator<K>
addDeletion(K key, String cf, long clock)
          Same as above accept we add the clock
<N> Mutator<K>
addDeletion(K key, String cf, N columnName, Serializer<N> nameSerializer)
          Adds a Deletion to the underlying batch_mutate call.
<N> Mutator<K>
addDeletion(K key, String cf, N columnName, Serializer<N> nameSerializer, long clock)
          Adds a Deletion to the underlying batch_mutate call.
<N,V> Mutator<K>
addInsertion(K key, String cf, HColumn<N,V> c)
           
<SN,N,V> Mutator<K>
addInsertion(K key, String cf, HSuperColumn<SN,N,V> sc)
          Schedule an insertion of a supercolumn to be inserted in batch mode by execute()
<SN,N,V> Mutator<K>
addSubDelete(K key, String cf, HSuperColumn<SN,N,V> sc)
          Deletes the columns defined in the HSuperColumn.
<SN,N,V> Mutator<K>
addSubDelete(K key, String cf, HSuperColumn<SN,N,V> sc, long clock)
           
<SN,N> Mutator<K>
addSubDelete(K key, String cf, SN sColumnName, N columnName, Serializer<SN> sNameSerializer, Serializer<N> nameSerializer)
           
<SN,N> Mutator<K>
addSubDelete(K key, String cf, SN sColumnName, N columnName, Serializer<SN> sNameSerializer, Serializer<N> nameSerializer, long clock)
           
<SN> Mutator<K>
addSuperDelete(K key, String cf, SN sColumnName, Serializer<SN> sNameSerializer)
          batches a super column for deletion
<N> MutationResult
decrementCounter(K key, String cf, N columnName, long increment)
          Convenient method to decrement a simple counter
<N> MutationResult
delete(K key, String cf, N columnName, Serializer<N> nameSerializer)
           
<N> MutationResult
delete(K key, String cf, N columnName, Serializer<N> nameSerializer, long clock)
           
<N> MutationResult
deleteCounter(K key, String cf, N counterColumnName, Serializer<N> nameSerializer)
           
 Mutator<K> discardPendingMutations()
          Discards all pending mutations.
 MutationResult execute()
          Batch executes all mutations scheduled to this Mutator instance by addInsertion, addDeletion etc.
<N> MutationResult
incrementCounter(K key, String cf, N columnName, long increment)
          Convenient method to increment a simple counter
<N,V> MutationResult
insert(K key, String cf, HColumn<N,V> c)
           
<SN,N,V> MutationResult
insert(K key, String cf, HSuperColumn<SN,N,V> superColumn)
           
<N> MutationResult
insertCounter(K key, String cf, HCounterColumn<N> c)
          Simple and immediate insertion (increment/decrement) of a counter
<SN,N> MutationResult
insertCounter(K key, String cf, HCounterSuperColumn<SN,N> superColumn)
          Simple and immediate insertion (increment/decrement) of a counter part of a super column
<SN,N> MutationResult
subDelete(K key, String cf, SN supercolumnName, N columnName, Serializer<SN> sNameSerializer, Serializer<N> nameSerializer)
          Deletes a subcolumn of a supercolumn
<SN,N> MutationResult
subDeleteCounter(K key, String cf, SN supercolumnName, N columnName, Serializer<SN> sNameSerializer, Serializer<N> nameSerializer)
          Deletes a subcolumn of a supercolumn for a counter
<SN> MutationResult
superDelete(K key, String cf, SN supercolumnName, Serializer<SN> sNameSerializer)
          Deletes a supercolumn immediately
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

keySerializer

protected final Serializer<K> keySerializer
Constructor Detail

MutatorImpl

public MutatorImpl(Keyspace keyspace,
                   Serializer<K> keySerializer,
                   BatchSizeHint sizeHint)

MutatorImpl

public MutatorImpl(Keyspace keyspace,
                   Serializer<K> keySerializer)

MutatorImpl

public MutatorImpl(Keyspace keyspace)

MutatorImpl

public MutatorImpl(Keyspace keyspace,
                   BatchSizeHint sizeHint)
Method Detail

insert

public <N,V> MutationResult insert(K key,
                                   String cf,
                                   HColumn<N,V> c)
Specified by:
insert in interface Mutator<K>

insert

public <SN,N,V> MutationResult insert(K key,
                                      String cf,
                                      HSuperColumn<SN,N,V> superColumn)
Specified by:
insert in interface Mutator<K>

delete

public <N> MutationResult delete(K key,
                                 String cf,
                                 N columnName,
                                 Serializer<N> nameSerializer)
Specified by:
delete in interface Mutator<K>

delete

public <N> MutationResult delete(K key,
                                 String cf,
                                 N columnName,
                                 Serializer<N> nameSerializer,
                                 long clock)
Specified by:
delete in interface Mutator<K>

subDelete

public <SN,N> MutationResult subDelete(K key,
                                       String cf,
                                       SN supercolumnName,
                                       N columnName,
                                       Serializer<SN> sNameSerializer,
                                       Serializer<N> nameSerializer)
Deletes a subcolumn of a supercolumn

Specified by:
subDelete in interface Mutator<K>
Type Parameters:
SN - super column type
N - subcolumn type

superDelete

public <SN> MutationResult superDelete(K key,
                                       String cf,
                                       SN supercolumnName,
                                       Serializer<SN> sNameSerializer)
Description copied from interface: Mutator
Deletes a supercolumn immediately

Specified by:
superDelete in interface Mutator<K>
Type Parameters:
SN - super column type

addSubDelete

public <SN,N,V> Mutator<K> addSubDelete(K key,
                                        String cf,
                                        HSuperColumn<SN,N,V> sc)
Deletes the columns defined in the HSuperColumn. If there are no HColumns attached, we delete the whole thing.

Specified by:
addSubDelete in interface Mutator<K>

addSubDelete

public <SN,N,V> Mutator<K> addSubDelete(K key,
                                        String cf,
                                        HSuperColumn<SN,N,V> sc,
                                        long clock)
Specified by:
addSubDelete in interface Mutator<K>

addInsertion

public <N,V> Mutator<K> addInsertion(K key,
                                     String cf,
                                     HColumn<N,V> c)
Specified by:
addInsertion in interface Mutator<K>

addInsertion

public <SN,N,V> Mutator<K> addInsertion(K key,
                                        String cf,
                                        HSuperColumn<SN,N,V> sc)
Schedule an insertion of a supercolumn to be inserted in batch mode by execute()

Specified by:
addInsertion in interface Mutator<K>

addDeletion

public <N> Mutator<K> addDeletion(K key,
                                  String cf,
                                  N columnName,
                                  Serializer<N> nameSerializer)
Adds a Deletion to the underlying batch_mutate call. The columnName argument can be null in which case Deletion is created with only the Clock, in this case user defined, resulting in the whole row being deleted.

Specified by:
addDeletion in interface Mutator<K>
Type Parameters:
N - column name type
Parameters:
key - row key
cf - column family
columnName - column name. Use null to delete the whole row.
nameSerializer - a name serializer
Returns:
a mutator

addDeletion

public <N> Mutator<K> addDeletion(K key,
                                  String cf)
Alternate form for easy deletion of the whole row.

Specified by:
addDeletion in interface Mutator<K>
Returns:

addDeletion

public <N> Mutator<K> addDeletion(K key,
                                  String cf,
                                  long clock)
Same as above accept we add the clock

Specified by:
addDeletion in interface Mutator<K>
Returns:

addDeletion

public <N> Mutator<K> addDeletion(Iterable<K> keys,
                                  String cf)
Description copied from interface: Mutator
Convenience methods to delete a list of rows.

Specified by:
addDeletion in interface Mutator<K>
Parameters:
keys - list of keys to delete
cf - Column Family name
Returns:
this object (method chain)

addDeletion

public <N> Mutator<K> addDeletion(Iterable<K> keys,
                                  String cf,
                                  long clock)
Description copied from interface: Mutator
Convenience methods to delete a list of rows.

Specified by:
addDeletion in interface Mutator<K>
Parameters:
keys - list of keys to delete
cf - Column Family name
clock - user defined clock
Returns:
this object (method chain)

addDeletion

public <N> Mutator<K> addDeletion(K key,
                                  String cf,
                                  N columnName,
                                  Serializer<N> nameSerializer,
                                  long clock)
Adds a Deletion to the underlying batch_mutate call. The columnName argument can be null in which case Deletion is created with only the Clock, in this case user defined, resulting in the whole row being deleted.

Specified by:
addDeletion in interface Mutator<K>
Type Parameters:
N - column name type
Parameters:
key - row key
cf - column family
columnName - column name. Use null to delete the whole row.
nameSerializer - a name serializer
clock - custom clock to use in the deletion
Returns:
a mutator

execute

public MutationResult execute()
Batch executes all mutations scheduled to this Mutator instance by addInsertion, addDeletion etc. May throw a HectorException which is a RuntimeException.

Specified by:
execute in interface Mutator<K>
Returns:
A MutationResult holds the status.

discardPendingMutations

public Mutator<K> discardPendingMutations()
Discards all pending mutations.

Specified by:
discardPendingMutations in interface Mutator<K>

toString

public String toString()
Overrides:
toString in class Object

insertCounter

public <N> MutationResult insertCounter(K key,
                                        String cf,
                                        HCounterColumn<N> c)
Description copied from interface: Mutator
Simple and immediate insertion (increment/decrement) of a counter

Specified by:
insertCounter in interface Mutator<K>

incrementCounter

public <N> MutationResult incrementCounter(K key,
                                           String cf,
                                           N columnName,
                                           long increment)
Description copied from interface: Mutator
Convenient method to increment a simple counter

Specified by:
incrementCounter in interface Mutator<K>

decrementCounter

public <N> MutationResult decrementCounter(K key,
                                           String cf,
                                           N columnName,
                                           long increment)
Description copied from interface: Mutator
Convenient method to decrement a simple counter

Specified by:
decrementCounter in interface Mutator<K>

insertCounter

public <SN,N> MutationResult insertCounter(K key,
                                           String cf,
                                           HCounterSuperColumn<SN,N> superColumn)
Description copied from interface: Mutator
Simple and immediate insertion (increment/decrement) of a counter part of a super column

Specified by:
insertCounter in interface Mutator<K>

deleteCounter

public <N> MutationResult deleteCounter(K key,
                                        String cf,
                                        N counterColumnName,
                                        Serializer<N> nameSerializer)
Specified by:
deleteCounter in interface Mutator<K>

subDeleteCounter

public <SN,N> MutationResult subDeleteCounter(K key,
                                              String cf,
                                              SN supercolumnName,
                                              N columnName,
                                              Serializer<SN> sNameSerializer,
                                              Serializer<N> nameSerializer)
Description copied from interface: Mutator
Deletes a subcolumn of a supercolumn for a counter

Specified by:
subDeleteCounter in interface Mutator<K>
Type Parameters:
SN - super column type
N - subcolumn type

addCounter

public <N> Mutator<K> addCounter(K key,
                                 String cf,
                                 HCounterColumn<N> c)
Description copied from interface: Mutator
Schedule an increment of a CounterColumn to be inserted in batch mode by Mutator.execute()

Specified by:
addCounter in interface Mutator<K>

addCounter

public <SN,N> Mutator<K> addCounter(K key,
                                    String cf,
                                    HCounterSuperColumn<SN,N> sc)
Description copied from interface: Mutator
Schedule an increment of a SuperColumn to be inserted in batch mode by Mutator.execute()

Specified by:
addCounter in interface Mutator<K>

addCounterDeletion

public <N> Mutator<K> addCounterDeletion(K key,
                                         String cf,
                                         N counterColumnName,
                                         Serializer<N> nameSerializer)
Description copied from interface: Mutator
Adds a Deletion to the underlying batch_mutate call. The columnName argument can be null in which case the whole row being deleted.

Specified by:
addCounterDeletion in interface Mutator<K>
Type Parameters:
N - column name type
Parameters:
key - row key
cf - column family
counterColumnName - column name. Use null to delete the whole row.
nameSerializer - a name serializer
Returns:
a mutator

addCounterDeletion

public <N> Mutator<K> addCounterDeletion(K key,
                                         String cf)
Description copied from interface: Mutator
Alternate form for easy deletion of the whole row.

Specified by:
addCounterDeletion in interface Mutator<K>
Returns:

addCounterSubDeletion

public <SN,N> Mutator<K> addCounterSubDeletion(K key,
                                               String cf,
                                               HCounterSuperColumn<SN,N> sc)
Description copied from interface: Mutator
Schedule a counter deletion.

Specified by:
addCounterSubDeletion in interface Mutator<K>

addSubDelete

public <SN,N> Mutator<K> addSubDelete(K key,
                                      String cf,
                                      SN sColumnName,
                                      N columnName,
                                      Serializer<SN> sNameSerializer,
                                      Serializer<N> nameSerializer)
Specified by:
addSubDelete in interface Mutator<K>

addSubDelete

public <SN,N> Mutator<K> addSubDelete(K key,
                                      String cf,
                                      SN sColumnName,
                                      N columnName,
                                      Serializer<SN> sNameSerializer,
                                      Serializer<N> nameSerializer,
                                      long clock)
Specified by:
addSubDelete in interface Mutator<K>

addSuperDelete

public <SN> Mutator<K> addSuperDelete(K key,
                                      String cf,
                                      SN sColumnName,
                                      Serializer<SN> sNameSerializer)
Description copied from interface: Mutator
batches a super column for deletion

Specified by:
addSuperDelete in interface Mutator<K>


Copyright © 2011. All Rights Reserved.