first commit for new repo
[sdc/sdc-titan-cassandra.git] / src / main / java / com / thinkaurelius / titan / diskstorage / cassandra / CassandraTransaction.java
1 package com.thinkaurelius.titan.diskstorage.cassandra;
2
3 import static com.thinkaurelius.titan.diskstorage.cassandra.AbstractCassandraStoreManager.CASSANDRA_READ_CONSISTENCY;
4 import static com.thinkaurelius.titan.diskstorage.cassandra.AbstractCassandraStoreManager.CASSANDRA_WRITE_CONSISTENCY;
5
6 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory;
8
9 import com.google.common.base.Preconditions;
10 import com.thinkaurelius.titan.diskstorage.BaseTransactionConfig;
11 import com.thinkaurelius.titan.diskstorage.common.AbstractStoreTransaction;
12 import com.thinkaurelius.titan.diskstorage.keycolumnvalue.StoreTransaction;
13
14 public class CassandraTransaction extends AbstractStoreTransaction {
15
16     private static final Logger log = LoggerFactory.getLogger(CassandraTransaction.class);
17
18     private final CLevel read;
19     private final CLevel write;
20
21     public CassandraTransaction(BaseTransactionConfig c) {
22         super(c);
23         read =  CLevel.parse(getConfiguration().getCustomOption(CASSANDRA_READ_CONSISTENCY));
24         write = CLevel.parse(getConfiguration().getCustomOption(CASSANDRA_WRITE_CONSISTENCY));
25         log.debug("Created {}", this.toString());
26     }
27
28     public CLevel getReadConsistencyLevel() {
29         return read;
30     }
31
32     public CLevel getWriteConsistencyLevel() {
33         return write;
34     }
35
36     public static CassandraTransaction getTx(StoreTransaction txh) {
37         Preconditions.checkArgument(txh != null);
38         Preconditions.checkArgument(txh instanceof CassandraTransaction, "Unexpected transaction type %s", txh.getClass().getName());
39         return (CassandraTransaction) txh;
40     }
41
42     public String toString() {
43         StringBuilder sb = new StringBuilder(64);
44         sb.append("CassandraTransaction@");
45         sb.append(Integer.toHexString(hashCode()));
46         sb.append("[read=");
47         sb.append(read);
48         sb.append(",write=");
49         sb.append(write);
50         sb.append("]");
51         return sb.toString();
52     }
53 }