diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2013-11-09 15:24:56 -0800 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2013-11-09 15:24:56 -0800 |
commit | d94643c217b6b93eb6c539c60b00fe0cf68272b7 (patch) | |
tree | ff27dd65b1580c5f498091684d32403577165426 /src/com/p4square/grow/backend/GrowBackend.java | |
parent | 5d7828e929a57042e3a0e6f6f2beafc60c748368 (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.java | 30 |
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. */ |