summaryrefslogtreecommitdiff
path: root/src/com/p4square/grow/backend/dynamo/DynamoProviderImpl.java
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2014-05-23 22:40:39 -0700
committerJesse Morgan <jesse@jesterpm.net>2014-05-23 22:40:39 -0700
commitd90c6f8ef2c9b630a39f7e6cbf65897dc2f62011 (patch)
tree422e40c724c56088af0bca376baa7a56634f9251 /src/com/p4square/grow/backend/dynamo/DynamoProviderImpl.java
parentef862e30975db691339fd143d2c4d60eb5132a3e (diff)
Adding dynamo support.
Diffstat (limited to 'src/com/p4square/grow/backend/dynamo/DynamoProviderImpl.java')
-rw-r--r--src/com/p4square/grow/backend/dynamo/DynamoProviderImpl.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/com/p4square/grow/backend/dynamo/DynamoProviderImpl.java b/src/com/p4square/grow/backend/dynamo/DynamoProviderImpl.java
new file mode 100644
index 0000000..93a535f
--- /dev/null
+++ b/src/com/p4square/grow/backend/dynamo/DynamoProviderImpl.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2013 Jesse Morgan
+ */
+
+package com.p4square.grow.backend.dynamo;
+
+import java.io.IOException;
+
+import com.p4square.grow.provider.Provider;
+import com.p4square.grow.provider.JsonEncodedProvider;
+
+/**
+ * Provider implementation backed by a DynamoDB Table.
+ *
+ * @author Jesse Morgan <jesse@jesterpm.net>
+ */
+public class DynamoProviderImpl<V> extends JsonEncodedProvider<V> implements Provider<DynamoKey, V> {
+ private final DynamoDatabase mDb;
+
+ public DynamoProviderImpl(DynamoDatabase db, Class<V> clazz) {
+ super(clazz);
+
+ mDb = db;
+ }
+
+ @Override
+ public V get(DynamoKey key) throws IOException {
+ String blob = mDb.getAttribute(key);
+ return decode(blob);
+ }
+
+ @Override
+ public void put(DynamoKey key, V obj) throws IOException {
+ String blob = encode(obj);
+ mDb.putAttribute(key, blob);
+ }
+}