summaryrefslogtreecommitdiff
path: root/src/com/p4square/grow/provider/QuestionProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/p4square/grow/provider/QuestionProvider.java')
-rw-r--r--src/com/p4square/grow/provider/QuestionProvider.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/com/p4square/grow/provider/QuestionProvider.java b/src/com/p4square/grow/provider/QuestionProvider.java
new file mode 100644
index 0000000..b569dc8
--- /dev/null
+++ b/src/com/p4square/grow/provider/QuestionProvider.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2013 Jesse Morgan
+ */
+
+package com.p4square.grow.provider;
+
+import java.io.IOException;
+
+import com.p4square.grow.model.Question;
+
+/**
+ * QuestionProvider wraps an existing Provider to get and put Questions.
+ *
+ * @author Jesse Morgan <jesse@jesterpm.net>
+ */
+public abstract class QuestionProvider<K> implements Provider<String, Question> {
+
+ private Provider<K, Question> mProvider;
+
+ public QuestionProvider(Provider<K, Question> provider) {
+ mProvider = provider;
+ }
+
+ @Override
+ public Question get(String key) throws IOException {
+ return mProvider.get(makeKey(key));
+ }
+
+ @Override
+ public void put(String key, Question obj) throws IOException {
+ mProvider.put(makeKey(key), obj);
+ }
+
+ /**
+ * Make a Key for questionId.
+ *
+ * @param questionId The question id.
+ * @return a key for questionId.
+ */
+ protected abstract K makeKey(String questionId);
+}