summaryrefslogtreecommitdiff
path: root/src/com/p4square/grow/provider
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/p4square/grow/provider')
-rw-r--r--src/com/p4square/grow/provider/JsonEncodedProvider.java12
-rw-r--r--src/com/p4square/grow/provider/ProvidesQuestions.java19
-rw-r--r--src/com/p4square/grow/provider/ProvidesTrainingRecords.java19
-rw-r--r--src/com/p4square/grow/provider/TrainingRecordProvider.java41
4 files changed, 85 insertions, 6 deletions
diff --git a/src/com/p4square/grow/provider/JsonEncodedProvider.java b/src/com/p4square/grow/provider/JsonEncodedProvider.java
index 605b18c..655b531 100644
--- a/src/com/p4square/grow/provider/JsonEncodedProvider.java
+++ b/src/com/p4square/grow/provider/JsonEncodedProvider.java
@@ -6,9 +6,9 @@ package com.p4square.grow.provider;
import java.io.IOException;
-import org.codehaus.jackson.map.DeserializationConfig;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
/**
* Provider provides a simple interface for loading and persisting
@@ -19,9 +19,9 @@ import org.codehaus.jackson.map.SerializationConfig;
public abstract class JsonEncodedProvider<K, V> implements Provider<K, V> {
public static final ObjectMapper MAPPER = new ObjectMapper();
static {
- MAPPER.configure(SerializationConfig.Feature.WRITE_ENUMS_USING_TO_STRING, true);
- MAPPER.configure(DeserializationConfig.Feature.READ_ENUMS_USING_TO_STRING, true);
- MAPPER.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ MAPPER.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
+ MAPPER.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true);
+ MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
private final Class<V> mClazz;
diff --git a/src/com/p4square/grow/provider/ProvidesQuestions.java b/src/com/p4square/grow/provider/ProvidesQuestions.java
new file mode 100644
index 0000000..b43f649
--- /dev/null
+++ b/src/com/p4square/grow/provider/ProvidesQuestions.java
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Jesse Morgan
+ */
+
+package com.p4square.grow.provider;
+
+import com.p4square.grow.model.Question;
+
+/**
+ * Indicates the ability to provide a Question Provider.
+ *
+ * @author Jesse Morgan <jesse@jesterpm.net>
+ */
+public interface ProvidesQuestions {
+ /**
+ * @return A Provider of Questions keyed by question id.
+ */
+ Provider<String, Question> getQuestionProvider();
+}
diff --git a/src/com/p4square/grow/provider/ProvidesTrainingRecords.java b/src/com/p4square/grow/provider/ProvidesTrainingRecords.java
new file mode 100644
index 0000000..27ffa3e
--- /dev/null
+++ b/src/com/p4square/grow/provider/ProvidesTrainingRecords.java
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2013 Jesse Morgan
+ */
+
+package com.p4square.grow.provider;
+
+import com.p4square.grow.model.TrainingRecord;
+
+/**
+ * Indicates the ability to provide a TrainingRecord Provider.
+ *
+ * @author Jesse Morgan <jesse@jesterpm.net>
+ */
+public interface ProvidesTrainingRecords {
+ /**
+ * @return A Provider of Questions keyed by question id.
+ */
+ Provider<String, TrainingRecord> getTrainingRecordProvider();
+}
diff --git a/src/com/p4square/grow/provider/TrainingRecordProvider.java b/src/com/p4square/grow/provider/TrainingRecordProvider.java
new file mode 100644
index 0000000..44dba87
--- /dev/null
+++ b/src/com/p4square/grow/provider/TrainingRecordProvider.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2013 Jesse Morgan
+ */
+
+package com.p4square.grow.provider;
+
+import java.io.IOException;
+
+import com.p4square.grow.model.TrainingRecord;
+
+/**
+ * TrainingRecordProvider wraps an existing Provider to get and put TrainingRecords.
+ *
+ * @author Jesse Morgan <jesse@jesterpm.net>
+ */
+public abstract class TrainingRecordProvider<K> implements Provider<String, TrainingRecord> {
+
+ private Provider<K, TrainingRecord> mProvider;
+
+ public TrainingRecordProvider(Provider<K, TrainingRecord> provider) {
+ mProvider = provider;
+ }
+
+ @Override
+ public TrainingRecord get(String key) throws IOException {
+ return mProvider.get(makeKey(key));
+ }
+
+ @Override
+ public void put(String key, TrainingRecord obj) throws IOException {
+ mProvider.put(makeKey(key), obj);
+ }
+
+ /**
+ * Make a Key for a TrainingRecord..
+ *
+ * @param userId The user id.
+ * @return a key for the TrainingRecord of userid.
+ */
+ protected abstract K makeKey(String userId);
+}