diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 201791ade352b99a77befdec6c62b9fded3442b4..77076525fda8d3c34a59409f4b72c2ac37fb887c 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -176,7 +176,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Session> getSessionsForUsername(String username, final int start, final int limit) { - final NovaView view = new NovaView("session/partial_by_sessiontype_creator_name"); + final View view = new View("session/partial_by_sessiontype_creator_name"); if (start > 0) { view.setSkip(start); } @@ -202,7 +202,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Session> getPublicPoolSessions() { // TODO replace with new view - final NovaView view = new NovaView("session/partial_by_ppsubject_name_for_publicpool"); + final View view = new View("session/partial_by_ppsubject_name_for_publicpool"); final ViewResults sessions = getDatabase().view(view); @@ -227,7 +227,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Session> getMyPublicPoolSessions(final User user) { - final NovaView view = new NovaView("session/partial_by_sessiontype_creator_name"); + final View view = new View("session/partial_by_sessiontype_creator_name"); view.setStartKeyArray("public_pool", user.getUsername()); view.setEndKeyArray("public_pool", user.getUsername(), "{}"); @@ -421,9 +421,9 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware public List<Question> getSkillQuestionsForUsers(final Session session) { final List<Question> questions = new ArrayList<>(); final String viewName = "content/doc_by_sessionid_variant_active"; - final NovaView view1 = new NovaView(viewName); - final NovaView view2 = new NovaView(viewName); - final NovaView view3 = new NovaView(viewName); + final View view1 = new View(viewName); + final View view2 = new View(viewName); + final View view3 = new View(viewName); view1.setStartKey(session.get_id(), "lecture", true); view1.setEndKey(session.get_id(), "lecture", true, "{}"); view2.setStartKey(session.get_id(), "preparation", true); @@ -440,7 +440,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Cacheable("skillquestions") @Override public List<Question> getSkillQuestionsForTeachers(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKey(session.get_id()); view.setEndKey(session.get_id(), "{}"); @@ -449,7 +449,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int getSkillQuestionCount(final Session session) { - final NovaView view = new NovaView("content/by_sessionid_variant_active"); + final View view = new View("content/by_sessionid_variant_active"); view.setStartKey(session.get_id()); view.setEndKey(session.get_id(), "{}"); @@ -459,7 +459,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override @Cacheable("sessions") public Session getSessionFromKeyword(final String keyword) { - final NovaView view = new NovaView("session/by_keyword"); + final View view = new View("session/by_keyword"); view.setIncludeDocs(true); view.setKey(keyword); final ViewResults results = getDatabase().view(view); @@ -772,7 +772,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public LoggedIn registerAsOnlineUser(final User user, final Session session) { try { - final NovaView view = new NovaView("logged_in/all"); + final View view = new View("logged_in/all"); view.setKey(user.getUsername()); final ViewResults results = getDatabase().view(view); @@ -845,7 +845,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<String> getQuestionIds(final Session session, final User user) { - NovaView view = new NovaView("content/by_sessionid_variant_active"); + View view = new View("content/by_sessionid_variant_active"); view.setKey(session.get_id()); return collectQuestionIds(view); } @@ -878,14 +878,14 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @CacheEvict(value = "flashcardquestions", key = "#session") }) @Override public int[] deleteAllQuestionsWithAnswers(final Session session) { - final NovaView view = new NovaView("content/by_sessionid_variant_active"); + final View view = new View("content/by_sessionid_variant_active"); view.setStartKeyArray(session.get_id()); view.setEndKey(session.get_id(), "{}"); return deleteAllQuestionDocumentsWithAnswers(view); } - private int[] deleteAllQuestionDocumentsWithAnswers(final NovaView view) { + private int[] deleteAllQuestionDocumentsWithAnswers(final View view) { final ViewResults results = getDatabase().view(view); List<Question> questions = new ArrayList<>(); @@ -912,7 +912,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int deleteAnswers(final Question question) { try { - final NovaView view = new NovaView("answer/by_questionid"); + final View view = new View("answer/by_questionid"); view.setKey(question.get_id()); view.setIncludeDocs(true); final ViewResults results = getDatabase().view(view); @@ -944,7 +944,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<String> getUnAnsweredQuestionIds(final Session session, final User user) { - final NovaView view = new NovaView("answer/questionid_by_user_sessionid_variant"); + final View view = new View("answer/questionid_by_user_sessionid_variant"); view.setStartKeyArray(user.getUsername(), session.get_id()); view.setEndKeyArray(user.getUsername(), session.get_id(), "{}"); return collectUnansweredQuestionIds(getQuestionIds(session, user), view); @@ -953,7 +953,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public Answer getMyAnswer(final User me, final String questionId, final int piRound) { - final NovaView view = new NovaView("answer/doc_by_questionid_user_piround"); + final View view = new View("answer/doc_by_questionid_user_piround"); if (2 == piRound) { view.setKey(questionId, me.getUsername(), "2"); } else { @@ -989,7 +989,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Answer> getAnswers(final Question question, final int piRound) { final String questionId = question.get_id(); - final NovaView view = new NovaView("answer/by_questionid_piround_text_subject"); + final View view = new View("answer/by_questionid_piround_text_subject"); if (2 == piRound) { view.setStartKey(questionId, 2); view.setEndKey(questionId, 2, "{}"); @@ -1019,7 +1019,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Answer> getAllAnswers(final Question question) { final String questionId = question.get_id(); - final NovaView view = new NovaView("answer/by_questionid_piround_text_subject"); + final View view = new View("answer/by_questionid_piround_text_subject"); view.setStartKeyArray(questionId); view.setEndKeyArray(questionId, "{}"); view.setGroup(true); @@ -1051,7 +1051,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int getAbstentionAnswerCount(final String questionId) { - final NovaView view = new NovaView("answer/by_questionid_piround_text_subject"); + final View view = new View("answer/by_questionid_piround_text_subject"); view.setStartKeyArray(questionId); view.setEndKeyArray(questionId, "{}"); view.setGroup(true); @@ -1064,7 +1064,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int getAnswerCount(final Question question, final int piRound) { - final NovaView view = new NovaView("answer/by_questionid_piround_text_subject"); + final View view = new View("answer/by_questionid_piround_text_subject"); view.setStartKey(question.get_id(), piRound); view.setEndKey(question.get_id(), piRound, "{}"); view.setGroup(true); @@ -1078,7 +1078,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int getTotalAnswerCountByQuestion(final Question question) { - final NovaView view = new NovaView("answer/by_questionid_piround_text_subject"); + final View view = new View("answer/by_questionid_piround_text_subject"); view.setStartKeyArray(question.get_id()); view.setEndKeyArray(question.get_id(), "{}"); view.setGroup(true); @@ -1098,7 +1098,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Answer> getFreetextAnswers(final String questionId, final int start, final int limit) { final List<Answer> answers = new ArrayList<>(); - final NovaView view = new NovaView("answer/doc_by_questionid_timestamp"); + final View view = new View("answer/doc_by_questionid_timestamp"); if (start > 0) { view.setSkip(start); } @@ -1122,7 +1122,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Answer> getMyAnswers(final User me, final Session s) { - final NovaView view = new NovaView("answer/doc_by_user_sessionid"); + final View view = new View("answer/doc_by_user_sessionid"); view.setKey(me.getUsername(), s.get_id()); final ViewResults results = getDatabase().view(view); final List<Answer> answers = new ArrayList<>(); @@ -1147,7 +1147,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware throw new NotFoundException(); } - final NovaView view = new NovaView("answer/by_sessionid_variant"); + final View view = new View("answer/by_sessionid_variant"); view.setKey(s.get_id()); final ViewResults results = getDatabase().view(view); if (results.getResults().isEmpty()) { @@ -1163,7 +1163,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware throw new NotFoundException(); } - final NovaView view = new NovaView("comment/by_sessionid"); + final View view = new View("comment/by_sessionid"); view.setKey(s.get_id()); view.setGroup(true); final ViewResults results = getDatabase().view(view); @@ -1175,7 +1175,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public InterposedReadingCount getInterposedReadingCount(final Session session) { - final NovaView view = new NovaView("comment/by_sessionid_read"); + final View view = new View("comment/by_sessionid_read"); view.setStartKeyArray(session.get_id()); view.setEndKeyArray(session.get_id(), "{}"); view.setGroup(true); @@ -1184,14 +1184,14 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public InterposedReadingCount getInterposedReadingCount(final Session session, final User user) { - final NovaView view = new NovaView("comment/by_sessionid_creator_read"); + final View view = new View("comment/by_sessionid_creator_read"); view.setStartKeyArray(session.get_id(), user.getUsername()); view.setEndKeyArray(session.get_id(), user.getUsername(), "{}"); view.setGroup(true); return getInterposedReadingCount(view); } - private InterposedReadingCount getInterposedReadingCount(final NovaView view) { + private InterposedReadingCount getInterposedReadingCount(final View view) { final ViewResults results = getDatabase().view(view); if (results.isEmpty() || results.getResults().isEmpty()) { return new InterposedReadingCount(); @@ -1237,7 +1237,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<InterposedQuestion> getInterposedQuestions(final Session session, final int start, final int limit) { - final NovaView view = new NovaView("comment/doc_by_sessionid_timestamp"); + final View view = new View("comment/doc_by_sessionid_timestamp"); if (start > 0) { view.setSkip(start); } @@ -1256,7 +1256,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<InterposedQuestion> getInterposedQuestions(final Session session, final User user, final int start, final int limit) { - final NovaView view = new NovaView("comment/doc_by_sessionid_creator_timestamp"); + final View view = new View("comment/doc_by_sessionid_creator_timestamp"); if (start > 0) { view.setSkip(start); } @@ -1394,7 +1394,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Session> getMyVisitedSessions(final User user, final int start, final int limit) { - final NovaView view = new NovaView("logged_in/visited_sessions_by_user"); + final View view = new View("logged_in/visited_sessions_by_user"); if (start > 0) { view.setSkip(start); } @@ -1460,7 +1460,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Session> getVisitedSessionsForUsername(String username, final int start, final int limit) { - final NovaView view = new NovaView("logged_in/visited_sessions_by_user"); + final View view = new View("logged_in/visited_sessions_by_user"); if (start > 0) { view.setSkip(start); } @@ -1659,7 +1659,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware /** * Adds convenience methods to CouchDB4J's view class. */ - private static class ExtendedView extends NovaView { + private static class ExtendedView extends View { ExtendedView(final String fullname) { super(fullname); @@ -1746,7 +1746,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int[] deleteInactiveGuestSessions(long lastActivityBefore) { - NovaView view = new NovaView("session/by_lastactivity_for_guests"); + View view = new View("session/by_lastactivity_for_guests"); view.setEndKey(lastActivityBefore); final List<Document> results = this.getDatabase().view(view).getResults(); int[] count = new int[3]; @@ -1772,7 +1772,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int deleteInactiveGuestVisitedSessionLists(long lastActivityBefore) { try { - NovaView view = new NovaView("logged_in/by_last_activity_for_guests"); + View view = new View("logged_in/by_last_activity_for_guests"); view.setEndKey(lastActivityBefore); List<Document> results = this.getDatabase().view(view).getResults(); @@ -1816,7 +1816,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Cacheable("lecturequestions") @Override public List<Question> getLectureQuestionsForUsers(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "lecture", true); view.setEndKeyArray(session.get_id(), "lecture", true, "{}"); @@ -1825,7 +1825,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Question> getLectureQuestionsForTeachers(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "lecture"); view.setEndKeyArray(session.get_id(), "lecture", "{}"); @@ -1835,7 +1835,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Cacheable("flashcardquestions") @Override public List<Question> getFlashcardsForUsers(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "flashcard", true); view.setEndKeyArray(session.get_id(), "flashcard", true, "{}"); @@ -1844,7 +1844,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Question> getFlashcardsForTeachers(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "flashcard"); view.setEndKeyArray(session.get_id(), "{}"); @@ -1854,7 +1854,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Cacheable("preparationquestions") @Override public List<Question> getPreparationQuestionsForUsers(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "preparation", true); view.setEndKeyArray(session.get_id(), "preparation", true, "{}"); @@ -1863,7 +1863,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Question> getPreparationQuestionsForTeachers(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "preparation"); view.setEndKeyArray(session.get_id(), "preparation", "{}"); @@ -1872,14 +1872,14 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Question> getAllSkillQuestions(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id()); view.setEndKeyArray(session.get_id(), "{}"); return getQuestions(view, session); } - private List<Question> getQuestions(final NovaView view, final Session session) { + private List<Question> getQuestions(final View view, final Session session) { final ViewResults viewResults = getDatabase().view(view); if (viewResults == null || viewResults.isEmpty()) { return null; @@ -1904,7 +1904,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int getLectureQuestionCount(final Session session) { - final NovaView view = new NovaView("content/by_sessionid_variant_active"); + final View view = new View("content/by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "lecture"); view.setEndKeyArray(session.get_id(), "lecture", "{}"); @@ -1913,7 +1913,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int getFlashcardCount(final Session session) { - final NovaView view = new NovaView("content/by_sessionid_variant_active"); + final View view = new View("content/by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "flashcard"); view.setEndKeyArray(session.get_id(), "flashcard", "{}"); @@ -1922,14 +1922,14 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int getPreparationQuestionCount(final Session session) { - final NovaView view = new NovaView("content/by_sessionid_variant_active"); + final View view = new View("content/by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "preparation"); view.setEndKeyArray(session.get_id(), "preparation", "{}"); return getQuestionCount(view); } - private int getQuestionCount(final NovaView view) { + private int getQuestionCount(final View view) { view.setReduce(true); final ViewResults results = getDatabase().view(view); if (results.getJSONArray("rows").optJSONObject(0) == null) { @@ -1949,7 +1949,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware } private int countQuestionVariantAnswers(final Session session, final String variant) { - final NovaView view = new NovaView("answer/by_sessionid_variant"); + final View view = new View("answer/by_sessionid_variant"); view.setKey(session.get_id(), variant); view.setReduce(true); final ViewResults results = getDatabase().view(view); @@ -1966,7 +1966,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @CacheEvict(value = "answers", allEntries = true)}) @Override public int[] deleteAllLectureQuestionsWithAnswers(final Session session) { - final NovaView view = new NovaView("content/by_sessionid_variant_active"); + final View view = new View("content/by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "lecture"); view.setEndKey(session.get_id(), "lecture", "{}"); @@ -1980,7 +1980,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @CacheEvict(value = "answers", allEntries = true)}) @Override public int[] deleteAllFlashcardsWithAnswers(final Session session) { - final NovaView view = new NovaView("content/by_sessionid_variant_active"); + final View view = new View("content/by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "flashcard"); view.setEndKey(session.get_id(), "flashcard", "{}"); @@ -1994,7 +1994,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @CacheEvict(value = "answers", allEntries = true)}) @Override public int[] deleteAllPreparationQuestionsWithAnswers(final Session session) { - final NovaView view = new NovaView("content/by_sessionid_variant_active"); + final View view = new View("content/by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "preparation"); view.setEndKey(session.get_id(), "preparation", "{}"); @@ -2003,21 +2003,21 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<String> getUnAnsweredLectureQuestionIds(final Session session, final User user) { - final NovaView view = new NovaView("answer/questionid_piround_by_user_sessionid_variant"); + final View view = new View("answer/questionid_piround_by_user_sessionid_variant"); view.setKey(user.getUsername(), session.get_id(), "lecture"); return collectUnansweredQuestionIdsByPiRound(getDatabaseDao().getLectureQuestionsForUsers(session), view); } @Override public List<String> getUnAnsweredPreparationQuestionIds(final Session session, final User user) { - final NovaView view = new NovaView("answer/questionid_piround_by_user_sessionid_variant"); + final View view = new View("answer/questionid_piround_by_user_sessionid_variant"); view.setKey(user.getUsername(), session.get_id(), "preparation"); return collectUnansweredQuestionIdsByPiRound(getDatabaseDao().getPreparationQuestionsForUsers(session), view); } private List<String> collectUnansweredQuestionIds( final List<String> questions, - final NovaView view + final View view ) { final ViewResults answeredQuestions = getDatabase().view(view); @@ -2037,7 +2037,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware private List<String> collectUnansweredQuestionIdsByPiRound( final List<Question> questions, - final NovaView view + final View view ) { final ViewResults answeredQuestions = getDatabase().view(view); @@ -2058,7 +2058,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware return unanswered; } - private List<String> collectQuestionIds(final NovaView view) { + private List<String> collectQuestionIds(final View view) { final ViewResults results = getDatabase().view(view); if (results.getResults().isEmpty()) { return new ArrayList<>(); @@ -2072,7 +2072,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int deleteAllInterposedQuestions(final Session session) { - final NovaView view = new NovaView("comment/by_sessionid"); + final View view = new View("comment/by_sessionid"); view.setKey(session.get_id()); final ViewResults questions = getDatabase().view(view); @@ -2081,7 +2081,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int deleteAllInterposedQuestions(final Session session, final User user) { - final NovaView view = new NovaView("comment/by_sessionid_creator_read"); + final View view = new View("comment/by_sessionid_creator_read"); view.setStartKeyArray(session.get_id(), user.getUsername()); view.setEndKeyArray(session.get_id(), user.getUsername(), "{}"); final ViewResults questions = getDatabase().view(view); @@ -2111,7 +2111,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Question> publishAllQuestions(final Session session, final boolean publish) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id()); view.setEndKeyArray(session.get_id(), "{}"); final List<Question> questions = getQuestions(view, session); @@ -2146,7 +2146,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Question> setVotingAdmissionForAllQuestions(final Session session, final boolean disableVoting) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id()); view.setEndKeyArray(session.get_id(), "{}"); final List<Question> questions = getQuestions(view, session); @@ -2186,7 +2186,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @CacheEvict(value = "answers", allEntries = true) @Override public int deleteAllQuestionsAnswers(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id()); view.setEndKeyArray(session.get_id(), "{}"); final List<Question> questions = getQuestions(view, session); @@ -2199,7 +2199,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @CacheEvict(value = "answers", allEntries = true) @Override public int deleteAllPreparationAnswers(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "preparation"); view.setEndKeyArray(session.get_id(), "preparation", "{}"); final List<Question> questions = getQuestions(view, session); @@ -2212,7 +2212,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @CacheEvict(value = "answers", allEntries = true) @Override public int deleteAllLectureAnswers(final Session session) { - final NovaView view = new NovaView("content/doc_by_sessionid_variant_active"); + final View view = new View("content/doc_by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), "lecture"); view.setEndKeyArray(session.get_id(), "lecture", "{}"); final List<Question> questions = getQuestions(view, session); @@ -2250,7 +2250,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware for (Question q : questions) { questionIds.add(q.get_id()); } - final NovaView bulkView = new NovaView("answer/by_questionid"); + final View bulkView = new View("answer/by_questionid"); bulkView.setKeys(questionIds); bulkView.setIncludeDocs(true); final List<Document> result = getDatabase().view(bulkView).getResults(); @@ -2282,7 +2282,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware questionIds.add(q.get_id()); allQuestions.add(d); } - final NovaView bulkView = new NovaView("answer/by_questionid"); + final View bulkView = new View("answer/by_questionid"); bulkView.setKeys(questionIds); bulkView.setIncludeDocs(true); final List<Document> result = getDatabase().view(bulkView).getResults(); @@ -2310,8 +2310,8 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Cacheable("learningprogress") @Override public CourseScore getLearningProgress(final Session session) { - final NovaView maximumValueView = new NovaView("learning_progress/maximum_value_of_question"); - final NovaView answerSumView = new NovaView("learning_progress/question_value_achieved_for_user"); + final View maximumValueView = new View("learning_progress/maximum_value_of_question"); + final View answerSumView = new View("learning_progress/question_value_achieved_for_user"); maximumValueView.setStartKeyArray(session.get_id()); maximumValueView.setEndKeyArray(session.get_id(), "{}"); answerSumView.setStartKeyArray(session.get_id()); @@ -2382,7 +2382,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public DbUser getUser(String username) { - NovaView view = new NovaView("user/doc_by_username"); + View view = new View("user/doc_by_username"); view.setKey(username); ViewResults results = this.getDatabase().view(view); @@ -2413,7 +2413,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public int deleteInactiveUsers(long lastActivityBefore) { try { - NovaView view = new NovaView("user/by_creation_for_inactive"); + View view = new View("user/by_creation_for_inactive"); view.setEndKey(lastActivityBefore); List<Document> results = this.getDatabase().view(view).getResults(); @@ -2604,7 +2604,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<String> getSubjects(Session session, String questionVariant) { - final NovaView view = new NovaView("content/by_sessionid_variant_active"); + final View view = new View("content/by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), questionVariant); view.setEndKeyArray(session.get_id(), questionVariant, "{}"); ViewResults results = this.getDatabase().view(view); @@ -2625,7 +2625,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware /* TODO: remove if this method is no longer used */ @Override public List<String> getQuestionIdsBySubject(Session session, String questionVariant, String subject) { - final NovaView view = new NovaView("content/by_sessionid_variant_active"); + final View view = new View("content/by_sessionid_variant_active"); view.setStartKeyArray(session.get_id(), questionVariant, 1, subject); view.setEndKeyArray(session.get_id(), questionVariant, 1, subject, "{}"); ViewResults results = this.getDatabase().view(view); @@ -2646,7 +2646,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Question> getQuestionsByIds(List<String> ids, final Session session) { - NovaView view = new NovaView("_all_docs"); + View view = new View("_all_docs"); view.setKeys(ids); view.setIncludeDocs(true); final List<Document> questiondocs = getDatabase().view(view).getResults(); @@ -2690,21 +2690,21 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public List<Motd> getAdminMotds() { - final NovaView view = new NovaView("motd/doc_by_audience_for_global"); + final View view = new View("motd/doc_by_audience_for_global"); return getMotds(view); } @Override @Cacheable(cacheNames = "motds", key = "'all'") public List<Motd> getMotdsForAll() { - final NovaView view = new NovaView("motd/doc_by_audience_for_global"); + final View view = new View("motd/doc_by_audience_for_global"); return getMotds(view); } @Override @Cacheable(cacheNames = "motds", key = "'loggedIn'") public List<Motd> getMotdsForLoggedIn() { - final NovaView view = new NovaView("motd/doc_by_audience_for_global"); + final View view = new View("motd/doc_by_audience_for_global"); view.setKey("loggedIn"); return getMotds(view); } @@ -2712,8 +2712,8 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override @Cacheable(cacheNames = "motds", key = "'tutors'") public List<Motd> getMotdsForTutors() { - final NovaView view1 = new NovaView("motd/doc_by_audience_for_global"); - final NovaView view2 = new NovaView("motd/doc_by_audience_for_global"); + final View view1 = new View("motd/doc_by_audience_for_global"); + final View view2 = new View("motd/doc_by_audience_for_global"); view1.setKey("loggedIn"); view2.setKey("tutors"); final List<Motd> union = new ArrayList<>(); @@ -2726,8 +2726,8 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override @Cacheable(cacheNames = "motds", key = "'students'") public List<Motd> getMotdsForStudents() { - final NovaView view1 = new NovaView("motd/doc_by_audience_for_global"); - final NovaView view2 = new NovaView("motd/doc_by_audience_for_global"); + final View view1 = new View("motd/doc_by_audience_for_global"); + final View view2 = new View("motd/doc_by_audience_for_global"); view1.setKey("loggedIn"); view2.setKey("students"); final List<Motd> union = new ArrayList<>(); @@ -2740,13 +2740,13 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override @Cacheable(cacheNames = "motds", key = "('session').concat(#p0)") public List<Motd> getMotdsForSession(final String sessionkey) { - final NovaView view = new NovaView("motd/doc_by_sessionkey"); + final View view = new View("motd/doc_by_sessionkey"); view.setKey(sessionkey); return getMotds(view); } @Override - public List<Motd> getMotds(NovaView view) { + public List<Motd> getMotds(View view) { final ViewResults motddocs = this.getDatabase().view(view); List<Motd> motdlist = new ArrayList<>(); for (final Document d : motddocs.getResults()) { @@ -2769,7 +2769,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override public Motd getMotdByKey(String key) { - final NovaView view = new NovaView("motd/by_motdkey"); + final View view = new View("motd/by_motdkey"); view.setIncludeDocs(true); view.setKey(key); Motd motd = new Motd(); @@ -2841,7 +2841,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Override @Cacheable(cacheNames = "motdlist", key = "#p0") public MotdList getMotdListForUser(final String username) { - NovaView view = new NovaView("motdlist/doc_by_username"); + View view = new View("motdlist/doc_by_username"); view.setKey(username); ViewResults results = this.getDatabase().view(view); diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index 68b0880eb66e68094c9a531023b71088a5f71a6b..bc3a37da2c502e6932c4ff3f461af8fbd510b180 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -17,6 +17,7 @@ */ package de.thm.arsnova.dao; +import com.fourspaces.couchdb.View; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.domain.CourseScore; import de.thm.arsnova.entities.*; @@ -274,7 +275,7 @@ public interface IDatabaseDao { List<Motd> getMotdsForSession(final String sessionkey); - List<Motd> getMotds(NovaView view); + List<Motd> getMotds(View view); Motd getMotdByKey(String key); diff --git a/src/main/java/de/thm/arsnova/dao/NovaView.java b/src/main/java/de/thm/arsnova/dao/NovaView.java deleted file mode 100644 index 0f8201a0cf0a71241b4db6bacd3e0f8b05249931..0000000000000000000000000000000000000000 --- a/src/main/java/de/thm/arsnova/dao/NovaView.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * This file is part of ARSnova Backend. - * Copyright (C) 2012-2017 The ARSnova Team - * - * ARSnova Backend is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ARSnova Backend is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package de.thm.arsnova.dao; - -import com.fourspaces.couchdb.View; - -/** - * Stub class that needs to be removed once migration to our CouchDB4J fork is complete - */ -public class NovaView extends View { - - public NovaView(String fullname) { - super(fullname); - } -} diff --git a/src/test/java/de/thm/arsnova/dao/NovaViewTest.java b/src/test/java/de/thm/arsnova/dao/NovaViewTest.java deleted file mode 100644 index cbbbf655d499191812796d9e1c6baa4fb9e37818..0000000000000000000000000000000000000000 --- a/src/test/java/de/thm/arsnova/dao/NovaViewTest.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * This file is part of ARSnova Backend. - * Copyright (C) 2012-2017 The ARSnova Team - * - * ARSnova Backend is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ARSnova Backend is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package de.thm.arsnova.dao; - -import com.fourspaces.couchdb.View.StaleMode; -import org.junit.Test; - -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.util.Arrays; - -import static org.junit.Assert.*; - -public class NovaViewTest { - - @Test - public void setKeyShouldAcceptSingleArgument() { - final NovaView v = new NovaView(null); - v.setKey("foo"); - assertEncodedEquals("key", "\"foo\"", v.getQueryString()); - } - - @Test - public void setKeyShouldAcceptMultipleArgument() { - final NovaView v = new NovaView(null); - v.setKey("foo", "bar", "baz"); - assertEncodedEquals("key", "[\"foo\",\"bar\",\"baz\"]", v.getQueryString()); - } - - @Test - public void setStartKeyShouldAcceptSingleArgument() { - final NovaView v = new NovaView(null); - v.setStartKey("foo"); - assertEncodedEquals("startkey", "\"foo\"", v.getQueryString()); - } - - @Test - public void setStartKeyShouldAcceptSingleArgumentArray() { - final NovaView v = new NovaView(null); - v.setStartKeyArray("foo"); - assertEncodedEquals("startkey", "[\"foo\"]", v.getQueryString()); - } - - @Test - public void setEndKeyShouldAcceptSingleArgumentArray() { - final NovaView v = new NovaView(null); - v.setEndKeyArray("foo"); - assertEncodedEquals("endkey", "[\"foo\"]", v.getQueryString()); - } - - @Test - public void setEndKeyShouldAcceptSingleArgument() { - final NovaView v = new NovaView(null); - v.setEndKey("foo"); - assertEncodedEquals("endkey", "\"foo\"", v.getQueryString()); - } - - @Test - public void setStartKeyShouldAcceptMultipleArgument() { - final NovaView v = new NovaView(null); - v.setStartKey("foo", "bar", "baz"); - assertEncodedEquals("startkey", "[\"foo\",\"bar\",\"baz\"]", v.getQueryString()); - } - - @Test - public void setEndKeyShouldAcceptMultipleArgument() { - final NovaView v = new NovaView(null); - v.setEndKey("foo", "bar", "baz"); - assertEncodedEquals("endkey", "[\"foo\",\"bar\",\"baz\"]", v.getQueryString()); - } - - @Test - public void keysShouldSupportEmptyObject() { - final NovaView v = new NovaView(null); - v.setKey("foo", "bar", "{}"); - assertEncodedEquals("key", "[\"foo\",\"bar\",{}]", v.getQueryString()); - } - - @Test - public void arrayKeysShouldNotEnquoteNumbers() { - final NovaView v = new NovaView(null); - v.setKey("foo", "bar", "2"); - assertEncodedEquals("key", "[\"foo\",\"bar\",2]", v.getQueryString()); - } - - @Test - public void singleArrayKeysShouldNotEnquoteNumbers() { - final NovaView v1 = new NovaView(null); - final NovaView v2 = new NovaView(null); - v1.setStartKeyArray("2"); - v2.setEndKeyArray("2"); - assertEncodedEquals("startkey", "[2]", v1.getQueryString()); - assertEncodedEquals("endkey", "[2]", v2.getQueryString()); - } - - @Test - public void shouldSupportAddingKeysParameter() { - String[] stringKeys = new String[] { "foo", "bar" }; - String[] numberKeys = new String[] { "123", "456" }; - String[] mixedKeys = new String[] { "foo", "123" }; - String[] arrayKeys = new String[] { "[\"foo\",123]", "[456,\"bar\"]" }; - String[] emptyKeys = new String[0]; - final NovaView v1 = new NovaView(null); - final NovaView v2 = new NovaView(null); - final NovaView v3 = new NovaView(null); - final NovaView v4 = new NovaView(null); - final NovaView v5 = new NovaView(null); - v1.setKeys(Arrays.asList(stringKeys)); - v2.setKeys(Arrays.asList(numberKeys)); - v3.setKeys(Arrays.asList(mixedKeys)); - v4.setKeys(Arrays.asList(arrayKeys)); - v5.setKeys(Arrays.asList(emptyKeys)); - assertEncodedEquals("keys", "[\"foo\",\"bar\"]", v1.getQueryString()); - assertEncodedEquals("keys", "[123,456]", v2.getQueryString()); - assertEncodedEquals("keys", "[\"foo\",123]", v3.getQueryString()); - assertEncodedEquals("keys", "[[\"foo\",123],[456,\"bar\"]]", v4.getQueryString()); - assertEncodedEquals("keys", "[]", v5.getQueryString()); - } - - @Test - public void shouldSupportStaleViews() { - final NovaView v1 = new NovaView(null); - final NovaView v2 = new NovaView(null); - final NovaView v3 = new NovaView(null); - final NovaView v4 = new NovaView(null); - v1.setStale(StaleMode.NONE); - v2.setStale(StaleMode.OK); - v3.setStale(StaleMode.UPDATE_AFTER); - assertNull(v1.getQueryString()); - assertEncodedEquals("stale", "ok", v2.getQueryString()); - assertEncodedEquals("stale", "update_after", v3.getQueryString()); - assertNull(v4.getQueryString()); - } - - @Test - public void shouldSupportIncludeDocsParameter() { - final NovaView v1 = new NovaView(null); - final NovaView v2 = new NovaView(null); - final NovaView v3 = new NovaView(null); - v1.setIncludeDocs(true); - v2.setIncludeDocs(false); - assertEncodedEquals("include_docs", "true", v1.getQueryString()); - assertNull(v2.getQueryString()); - assertNull(v3.getQueryString()); - } - - private void assertEncodedEquals(final String key, final String expected, final String actual) { - try { - assertEquals(key + "=" + URLEncoder.encode(expected, "UTF-8"), actual); - } catch (final UnsupportedEncodingException e) { - fail(e.getLocalizedMessage()); - } - } -} diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java index eeac36d7539571479b13f0bd311837bd67baaa77..99522e85b3e1c13eae4c3693eb14ba8140b60cc2 100644 --- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java +++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java @@ -17,6 +17,7 @@ */ package de.thm.arsnova.dao; +import com.fourspaces.couchdb.View; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.domain.CourseScore; import de.thm.arsnova.entities.*; @@ -710,7 +711,7 @@ public class StubDatabaseDao implements IDatabaseDao { } @Override - public List<Motd> getMotds(NovaView view) { + public List<Motd> getMotds(View view) { return null; }