diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2014-05-23 22:40:39 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2014-05-23 22:40:39 -0700 |
commit | d90c6f8ef2c9b630a39f7e6cbf65897dc2f62011 (patch) | |
tree | 422e40c724c56088af0bca376baa7a56634f9251 /src/com/p4square/grow/backend/dynamo/DynamoProviderImpl.java | |
parent | ef862e30975db691339fd143d2c4d60eb5132a3e (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.java | 37 |
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); + } +} |