From d94643c217b6b93eb6c539c60b00fe0cf68272b7 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 9 Nov 2013 15:24:56 -0800 Subject: 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. --- src/com/p4square/grow/backend/GrowBackend.java | 30 +++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'src/com/p4square/grow/backend/GrowBackend.java') 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 */ -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 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(new CassandraProviderImpl(mDatabase, "strings", Question.class)) { + mQuestionProvider = new QuestionProvider(new CassandraProviderImpl(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 getQuestionProvider() { return mQuestionProvider; } + @Override + public Provider getTrainingRecordProvider() { + return mTrainingRecordProvider; + } + + /** + * @return the Default Playlist. + */ + public Playlist getDefaultPlaylist() throws IOException { + return mTrainingRecordProvider.getDefaultPlaylist(); + } + /** * Stand-alone main for testing. */ -- cgit v1.2.3