summaryrefslogtreecommitdiff
path: root/src/com/p4square/grow/backend/GrowBackend.java
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2013-11-09 15:24:56 -0800
committerJesse Morgan <jesse@jesterpm.net>2013-11-09 15:24:56 -0800
commitd94643c217b6b93eb6c539c60b00fe0cf68272b7 (patch)
treeff27dd65b1580c5f498091684d32403577165426 /src/com/p4square/grow/backend/GrowBackend.java
parent5d7828e929a57042e3a0e6f6f2beafc60c748368 (diff)
Refactored TrainingResource to use the Provider interface.
Playlists are now generated from a default playlist and regularly merged with the default playlist to get updates. Also adding the Question tests that got left out of a previous commit.
Diffstat (limited to 'src/com/p4square/grow/backend/GrowBackend.java')
-rw-r--r--src/com/p4square/grow/backend/GrowBackend.java30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/com/p4square/grow/backend/GrowBackend.java b/src/com/p4square/grow/backend/GrowBackend.java
index 45e0fa2..195554e 100644
--- a/src/com/p4square/grow/backend/GrowBackend.java
+++ b/src/com/p4square/grow/backend/GrowBackend.java
@@ -4,6 +4,8 @@
package com.p4square.grow.backend;
+import java.io.IOException;
+
import org.apache.log4j.Logger;
import org.restlet.Application;
@@ -17,10 +19,15 @@ import com.p4square.grow.config.Config;
import com.p4square.grow.backend.db.CassandraDatabase;
import com.p4square.grow.backend.db.CassandraKey;
import com.p4square.grow.backend.db.CassandraProviderImpl;
+import com.p4square.grow.backend.db.CassandraTrainingRecordProvider;
import com.p4square.grow.model.Question;
+import com.p4square.grow.model.TrainingRecord;
+import com.p4square.grow.model.Playlist;
import com.p4square.grow.provider.Provider;
+import com.p4square.grow.provider.ProvidesQuestions;
+import com.p4square.grow.provider.ProvidesTrainingRecords;
import com.p4square.grow.provider.QuestionProvider;
import com.p4square.grow.backend.resources.AccountResource;
@@ -35,7 +42,8 @@ import com.p4square.grow.backend.resources.TrainingResource;
*
* @author Jesse Morgan <jesse@jesterpm.net>
*/
-public class GrowBackend extends Application {
+public class GrowBackend extends Application
+ implements ProvidesQuestions, ProvidesTrainingRecords {
private static final String DEFAULT_COLUMN = "value";
private final static Logger LOG = Logger.getLogger(GrowBackend.class);
@@ -44,6 +52,7 @@ public class GrowBackend extends Application {
private final CassandraDatabase mDatabase;
private final Provider<String, Question> mQuestionProvider;
+ private final CassandraTrainingRecordProvider mTrainingRecordProvider;
public GrowBackend() {
this(new Config());
@@ -53,12 +62,14 @@ public class GrowBackend extends Application {
mConfig = config;
mDatabase = new CassandraDatabase();
- mQuestionProvider = new QuestionProvider<CassandraKey>(new CassandraProviderImpl<Question>(mDatabase, "strings", Question.class)) {
+ mQuestionProvider = new QuestionProvider<CassandraKey>(new CassandraProviderImpl<Question>(mDatabase, Question.class)) {
@Override
public CassandraKey makeKey(String questionId) {
- return new CassandraKey("/questions/" + questionId, DEFAULT_COLUMN);
+ return new CassandraKey("strings", "/questions/" + questionId, DEFAULT_COLUMN);
}
};
+
+ mTrainingRecordProvider = new CassandraTrainingRecordProvider(mDatabase);
}
@Override
@@ -120,10 +131,23 @@ public class GrowBackend extends Application {
return mDatabase;
}
+ @Override
public Provider<String, Question> getQuestionProvider() {
return mQuestionProvider;
}
+ @Override
+ public Provider<String, TrainingRecord> getTrainingRecordProvider() {
+ return mTrainingRecordProvider;
+ }
+
+ /**
+ * @return the Default Playlist.
+ */
+ public Playlist getDefaultPlaylist() throws IOException {
+ return mTrainingRecordProvider.getDefaultPlaylist();
+ }
+
/**
* Stand-alone main for testing.
*/