Skip to content
edwardcapriolo edited this page Feb 22, 2013 · 1 revision

Counters can be fetched with the standard get operation, and incremented with the Counter operation.

@Test
@RequiresColumnFamily(ksName = "myks", cfName = "mycountercf", isCounter = true)
public void counterNoodling() throws Exception {
  IntraReq req = new IntraReq();
  req.add(
         Operations.assumeOp("myks", "mycountercf", "value", "LongType"))
        .add(Operations.assumeOp("myks", "mycountercf", "column", "UTF8Type"))
        .add(Operations.setKeyspaceOp("myks"))
        .add(Operations.setColumnFamilyOp("mycountercf"))
        .add(Operations.counter("counter_key", "counter_name_1", 1).set("timeout", 30000)) // 4
        .add(Operations.getOp("counter_key", "counter_name_1"))
        .add(Operations.counter("counter_key", "counter_name_1", 4).set("timeout", 30000))
        .add(Operations.getOp("counter_key", "counter_name_1"));

...
List<Map> results = (List<Map>) res.getOpsRes().get(5);
logger.info("has results {}",results);
Assert.assertEquals(1L, results.get(0).get("value"));
results = (List<Map>) res.getOpsRes().get(7);
Assert.assertEquals(5L, results.get(0).get("value"));