diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2014-05-23 13:05:19 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2014-05-23 13:05:19 -0700 |
commit | ef862e30975db691339fd143d2c4d60eb5132a3e (patch) | |
tree | 2388b461e98a6c6443294a172ddb9ab789de8a26 /src/com/p4square/grow/backend/db | |
parent | 728c8cfae2312e68fefd49241436517afb4c6134 (diff) |
Abstracting out Cassandra.
Diffstat (limited to 'src/com/p4square/grow/backend/db')
-rw-r--r-- | src/com/p4square/grow/backend/db/CassandraCollectionProvider.java | 10 | ||||
-rw-r--r-- | src/com/p4square/grow/backend/db/CassandraProviderImpl.java | 10 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/com/p4square/grow/backend/db/CassandraCollectionProvider.java b/src/com/p4square/grow/backend/db/CassandraCollectionProvider.java index 5e83247..bfcb48d 100644 --- a/src/com/p4square/grow/backend/db/CassandraCollectionProvider.java +++ b/src/com/p4square/grow/backend/db/CassandraCollectionProvider.java @@ -80,7 +80,11 @@ public class CassandraCollectionProvider<V> implements CollectionProvider<String * @throws IOException if the object cannot be encoded. */ protected String encode(V obj) throws IOException { - return JsonEncodedProvider.MAPPER.writeValueAsString(obj); + if (mClazz == String.class) { + return (String) obj; + } else { + return JsonEncodedProvider.MAPPER.writeValueAsString(obj); + } } /** @@ -95,6 +99,10 @@ public class CassandraCollectionProvider<V> implements CollectionProvider<String return null; } + if (mClazz == String.class) { + return (V) blob; + } + V obj = JsonEncodedProvider.MAPPER.readValue(blob, mClazz); return obj; } diff --git a/src/com/p4square/grow/backend/db/CassandraProviderImpl.java b/src/com/p4square/grow/backend/db/CassandraProviderImpl.java index da5a9f2..9d896e7 100644 --- a/src/com/p4square/grow/backend/db/CassandraProviderImpl.java +++ b/src/com/p4square/grow/backend/db/CassandraProviderImpl.java @@ -26,12 +26,20 @@ public class CassandraProviderImpl<V> extends JsonEncodedProvider<V> implements @Override public V get(CassandraKey key) throws IOException { String blob = mDb.getKey(key.getColumnFamily(), key.getId(), key.getColumn()); + if (mClazz == String.class) { + return (V) blob; + } return decode(blob); } @Override public void put(CassandraKey key, V obj) throws IOException { - String blob = encode(obj); + String blob; + if (mClazz == String.class) { + blob = (String) obj; + } else { + blob = encode(obj); + } mDb.putKey(key.getColumnFamily(), key.getId(), key.getColumn(), blob); } } |