From 8bdf75eb90a3dfb98608eeb5f71d02eb334d78e2 Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt <code@dgerhardt.net> Date: Thu, 31 Aug 2017 18:27:24 +0200 Subject: [PATCH] Refactor API/entities for sessions --- .../de/thm/arsnova/aop/UserSessionAspect.java | 2 +- .../arsnova/controller/LoginController.java | 2 +- .../arsnova/controller/SessionController.java | 6 +- .../de/thm/arsnova/entities/LoggedIn.java | 1 + .../java/de/thm/arsnova/entities/Session.java | 333 ++-------------- .../arsnova/entities/SessionStatistics.java | 61 +++ .../thm/arsnova/entities/VisitedSession.java | 1 + .../entities/migration/V2Migrator.java | 17 + .../entities/migration/v2/Session.java | 366 ++++++++++++++++++ .../{ => migration/v2}/SessionFeature.java | 2 +- .../{ => migration/v2}/SessionInfo.java | 2 +- .../CouchDbTypeFieldConverter.java | 2 +- .../transport/AnswerQueueElement.java | 2 +- .../transport/ImportExportSession.java | 6 +- .../thm/arsnova/events/ChangeScoreEvent.java | 2 +- .../events/DeleteAllLectureAnswersEvent.java | 2 +- .../DeleteAllPreparationAnswersEvent.java | 2 +- .../DeleteAllQuestionsAnswersEvent.java | 2 +- .../events/DeleteAllQuestionsEvent.java | 2 +- .../thm/arsnova/events/DeleteAnswerEvent.java | 2 +- .../arsnova/events/DeleteCommentEvent.java | 2 +- .../DeleteFeedbackForSessionsEvent.java | 2 +- .../arsnova/events/DeleteQuestionEvent.java | 2 +- .../arsnova/events/DeleteSessionEvent.java | 2 +- .../arsnova/events/FeatureChangeEvent.java | 2 +- .../arsnova/events/FlipFlashcardsEvent.java | 2 +- .../thm/arsnova/events/LockFeedbackEvent.java | 2 +- .../thm/arsnova/events/LockQuestionEvent.java | 2 +- .../arsnova/events/LockQuestionsEvent.java | 2 +- .../de/thm/arsnova/events/LockVoteEvent.java | 2 +- .../de/thm/arsnova/events/LockVotesEvent.java | 2 +- .../de/thm/arsnova/events/NewAnswerEvent.java | 2 +- .../thm/arsnova/events/NewCommentEvent.java | 2 +- .../thm/arsnova/events/NewFeedbackEvent.java | 2 +- .../thm/arsnova/events/NewQuestionEvent.java | 2 +- .../thm/arsnova/events/NewSessionEvent.java | 2 +- .../arsnova/events/PiRoundCancelEvent.java | 2 +- .../events/PiRoundDelayedStartEvent.java | 2 +- .../thm/arsnova/events/PiRoundEndEvent.java | 2 +- .../thm/arsnova/events/PiRoundResetEvent.java | 2 +- .../de/thm/arsnova/events/SessionEvent.java | 2 +- .../arsnova/events/StatusSessionEvent.java | 2 +- .../arsnova/events/UnlockQuestionEvent.java | 2 +- .../arsnova/events/UnlockQuestionsEvent.java | 2 +- .../thm/arsnova/events/UnlockVoteEvent.java | 2 +- .../thm/arsnova/events/UnlockVotesEvent.java | 2 +- .../persistance/SessionRepository.java | 4 +- .../SessionStatisticsRepository.java | 2 +- .../couchdb/CouchDbSessionRepository.java | 4 +- .../CouchDbSessionStatisticsRepository.java | 2 +- .../ApplicationPermissionEvaluator.java | 2 +- .../arsnova/services/CommentServiceImpl.java | 2 +- .../arsnova/services/ContentServiceImpl.java | 2 +- .../arsnova/services/FeedbackServiceImpl.java | 2 +- .../services/FeedbackStorageService.java | 2 +- .../services/FeedbackStorageServiceImpl.java | 2 +- .../thm/arsnova/services/MotdServiceImpl.java | 2 +- .../thm/arsnova/services/SessionService.java | 6 +- .../arsnova/services/SessionServiceImpl.java | 6 +- .../arsnova/services/UserSessionService.java | 2 +- .../services/UserSessionServiceImpl.java | 2 +- .../services/score/ScoreCalculator.java | 2 +- .../score/VariantScoreCalculator.java | 2 +- .../websocket/ArsnovaSocketioServerImpl.java | 27 +- .../DefaultEntityServiceImplTest.java | 2 +- 65 files changed, 562 insertions(+), 380 deletions(-) create mode 100644 src/main/java/de/thm/arsnova/entities/SessionStatistics.java create mode 100644 src/main/java/de/thm/arsnova/entities/migration/v2/Session.java rename src/main/java/de/thm/arsnova/entities/{ => migration/v2}/SessionFeature.java (99%) rename src/main/java/de/thm/arsnova/entities/{ => migration/v2}/SessionInfo.java (99%) diff --git a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java index f3f7ad860..2ef9a36af 100644 --- a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java +++ b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.aop; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.services.UserSessionService; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; diff --git a/src/main/java/de/thm/arsnova/controller/LoginController.java b/src/main/java/de/thm/arsnova/controller/LoginController.java index 10e1bd4b0..960958397 100644 --- a/src/main/java/de/thm/arsnova/controller/LoginController.java +++ b/src/main/java/de/thm/arsnova/controller/LoginController.java @@ -18,7 +18,7 @@ package de.thm.arsnova.controller; import de.thm.arsnova.entities.ServiceDescription; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import de.thm.arsnova.exceptions.UnauthorizedException; import de.thm.arsnova.services.UserService; diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java index ac95db32f..98b1f6c1a 100644 --- a/src/main/java/de/thm/arsnova/controller/SessionController.java +++ b/src/main/java/de/thm/arsnova/controller/SessionController.java @@ -18,9 +18,9 @@ package de.thm.arsnova.controller; import de.thm.arsnova.connector.model.Course; -import de.thm.arsnova.entities.Session; -import de.thm.arsnova.entities.SessionFeature; -import de.thm.arsnova.entities.SessionInfo; +import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.SessionFeature; +import de.thm.arsnova.entities.migration.v2.SessionInfo; import de.thm.arsnova.entities.transport.ImportExportSession; import de.thm.arsnova.entities.transport.ScoreStatistics; import de.thm.arsnova.exceptions.UnauthorizedException; diff --git a/src/main/java/de/thm/arsnova/entities/LoggedIn.java b/src/main/java/de/thm/arsnova/entities/LoggedIn.java index 275196fab..aff7b46fe 100644 --- a/src/main/java/de/thm/arsnova/entities/LoggedIn.java +++ b/src/main/java/de/thm/arsnova/entities/LoggedIn.java @@ -18,6 +18,7 @@ package de.thm.arsnova.entities; import com.fasterxml.jackson.annotation.JsonView; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.serialization.View; import java.util.ArrayList; diff --git a/src/main/java/de/thm/arsnova/entities/Session.java b/src/main/java/de/thm/arsnova/entities/Session.java index ee09f44be..409295505 100644 --- a/src/main/java/de/thm/arsnova/entities/Session.java +++ b/src/main/java/de/thm/arsnova/entities/Session.java @@ -1,363 +1,98 @@ -/* - * This file is part of ARSnova Backend. - * Copyright (C) 2012-2018 The ARSnova Team and Contributors - * - * 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.entities; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonView; import de.thm.arsnova.entities.serialization.View; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -/** - * Represents an ARSnova session. - */ -@ApiModel(value = "session", description = "the session entity") public class Session implements Entity { private String id; private String rev; + private String shortId; + private String ownerId; private String name; - private String shortName; - private String keyword; - private String creator; - private boolean active; - private long lastOwnerActivity; - private String courseType; - private String courseId; - private long creationTime; - private ScoreOptions learningProgressOptions = new ScoreOptions(); - private SessionFeature features = new SessionFeature(); - - private String ppAuthorName; - private String ppAuthorMail; - private String ppUniversity; - private String ppLogo; - private String ppSubject; - private String ppLicense; - private String ppDescription; - private String ppFaculty; - private String ppLevel; - private String sessionType; - private boolean feedbackLock; - private boolean flipFlashcards; + private String abbreviation; + private boolean closed; + private SessionStatistics statistics; + @Override @JsonView({View.Persistence.class, View.Public.class}) public String getId() { return id; } + @Override @JsonView({View.Persistence.class, View.Public.class}) public void setId(final String id) { this.id = id; } + @Override @JsonView({View.Persistence.class, View.Public.class}) public String getRevision() { return rev; } + @Override @JsonView({View.Persistence.class, View.Public.class}) public void setRevision(final String rev) { this.rev = rev; } - @ApiModelProperty(required = true, value = "the name") - @JsonView({View.Persistence.class, View.Public.class}) - public String getName() { - return name; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setName(final String name) { - this.name = name; - } - - @ApiModelProperty(required = true, value = "the short name") - @JsonView({View.Persistence.class, View.Public.class}) - public String getShortName() { - return shortName; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setShortName(final String shortName) { - this.shortName = shortName; - } - - @ApiModelProperty(required = true, value = "the keyword") - @JsonView({View.Persistence.class, View.Public.class}) - public String getKeyword() { - return keyword; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setKeyword(final String keyword) { - this.keyword = keyword; - } - - @ApiModelProperty(required = true, value = "the session creator") - @JsonView(View.Persistence.class) - public String getCreator() { - return creator; - } - - @JsonView(View.Persistence.class) - public void setCreator(final String creator) { - this.creator = creator; - } - - @ApiModelProperty(required = true, value = "true for active session") @JsonView({View.Persistence.class, View.Public.class}) - public boolean isActive() { - return active; + public String getShortId() { + return shortId; } @JsonView({View.Persistence.class, View.Public.class}) - public void setActive(final boolean active) { - this.active = active; + public void setShortId(final String shortId) { + this.shortId = shortId; } - @ApiModelProperty(required = true, value = "timestamp from the last activity of the owner") @JsonView(View.Persistence.class) - public long getLastOwnerActivity() { - return lastOwnerActivity; + public String getOwnerId() { + return ownerId; } @JsonView(View.Persistence.class) - public void setLastOwnerActivity(final long lastOwnerActivity) { - this.lastOwnerActivity = lastOwnerActivity; - } - - public boolean isCreator(final User user) { - return user.getUsername().equals(creator); - } - - @ApiModelProperty(required = true, value = "the source the course comes from (example: moodle)") - @JsonView({View.Persistence.class, View.Public.class}) - public String getCourseType() { - return courseType; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setCourseType(final String courseType) { - this.courseType = courseType; - } - - @ApiModelProperty(required = true, value = "the course ID") - @JsonView({View.Persistence.class, View.Public.class}) - public String getCourseId() { - return courseId; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setCourseId(final String courseId) { - this.courseId = courseId; - } - - @JsonIgnore - public boolean isCourseSession() { - return getCourseId() != null && !getCourseId().isEmpty(); - } - - @ApiModelProperty(required = true, value = "creation timestamp") - @JsonView({View.Persistence.class, View.Public.class}) - public long getCreationTime() { - return creationTime; - } - - @JsonView(View.Persistence.class) - public void setCreationTime(long creationTime) { - this.creationTime = creationTime; - } - - @ApiModelProperty(required = true, value = "the score options") - @JsonView({View.Persistence.class, View.Public.class}) - public ScoreOptions getLearningProgressOptions() { - return learningProgressOptions; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setLearningProgressOptions(ScoreOptions learningProgressOptions) { - this.learningProgressOptions = learningProgressOptions; - } - - @ApiModelProperty(required = true, value = "the enabled features (e.g. feedback, interposed, learning Progress, lecture)") - @JsonView({View.Persistence.class, View.Public.class}) - public SessionFeature getFeatures() { - return features; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setFeatures(SessionFeature features) { - this.features = features; - } - - @ApiModelProperty(required = true, value = "the public pool author name") - @JsonView({View.Persistence.class, View.Public.class}) - public String getPpAuthorName() { - return ppAuthorName; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setPpAuthorName(final String ppAuthorName) { - this.ppAuthorName = ppAuthorName; - } - - @ApiModelProperty(required = true, value = "the public pool author email") - @JsonView({View.Persistence.class, View.Public.class}) - public String getPpAuthorMail() { - return ppAuthorMail; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setPpAuthorMail(final String ppAuthorMail) { - this.ppAuthorMail = ppAuthorMail; - } - - @ApiModelProperty(required = true, value = "the public pool university") - @JsonView({View.Persistence.class, View.Public.class}) - public String getPpUniversity() { - return ppUniversity; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setPpUniversity(final String ppUniversity) { - this.ppUniversity = ppUniversity; - } - - @ApiModelProperty(required = true, value = "the public pool logo") - @JsonView({View.Persistence.class, View.Public.class}) - public String getPpLogo() { - return ppLogo; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setPpLogo(final String ppLogo) { - this.ppLogo = ppLogo; - } - - @ApiModelProperty(required = true, value = "used to display subject") - @JsonView({View.Persistence.class, View.Public.class}) - public String getPpSubject() { - return ppSubject; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setPpSubject(final String ppSubject) { - this.ppSubject = ppSubject; - } - - @ApiModelProperty(required = true, value = "the public pool license") - @JsonView({View.Persistence.class, View.Public.class}) - public String getPpLicense() { - return ppLicense; + public void setOwnerId(final String ownerId) { + this.ownerId = ownerId; } @JsonView({View.Persistence.class, View.Public.class}) - public void setPpLicense(final String ppLicense) { - this.ppLicense = ppLicense; - } - - @ApiModelProperty(required = true, value = "the public pool description") - @JsonView({View.Persistence.class, View.Public.class}) - public String getPpDescription() { - return ppDescription; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setPpDescription(final String ppDescription) { - this.ppDescription = ppDescription; - } - - @ApiModelProperty(required = true, value = "the public pool faculty") - @JsonView({View.Persistence.class, View.Public.class}) - public String getPpFaculty() { - return ppFaculty; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setPpFaculty(final String ppFaculty) { - this.ppFaculty = ppFaculty; - } - - @ApiModelProperty(required = true, value = "the public pool level") - @JsonView({View.Persistence.class, View.Public.class}) - public String getPpLevel() { - return ppLevel; - } - - @JsonView({View.Persistence.class, View.Public.class}) - public void setPpLevel(final String ppLevel) { - this.ppLevel = ppLevel; - } - - @ApiModelProperty(required = true, value = "the session type") - @JsonView({View.Persistence.class, View.Public.class}) - public String getSessionType() { - return sessionType; + public String getName() { + return name; } @JsonView({View.Persistence.class, View.Public.class}) - public void setSessionType(final String sessionType) { - this.sessionType = sessionType; + public void setName(final String name) { + this.name = name; } - @ApiModelProperty(required = true, value = "the feedback lock status") @JsonView({View.Persistence.class, View.Public.class}) - public boolean getFeedbackLock() { - return feedbackLock; + public String getAbbreviation() { + return abbreviation; } @JsonView({View.Persistence.class, View.Public.class}) - public void setFeedbackLock(Boolean lock) { - this.feedbackLock = lock; + public void setAbbreviation(final String abbreviation) { + this.abbreviation = abbreviation; } - @ApiModelProperty(required = true, value = "the flashcard flip condition") @JsonView({View.Persistence.class, View.Public.class}) - public boolean getFlipFlashcards() { - return flipFlashcards; + public boolean isClosed() { + return closed; } @JsonView({View.Persistence.class, View.Public.class}) - public void setFlipFlashcards(Boolean flip) { - this.flipFlashcards = flip; - } - - @Override - public String toString() { - return "Session [keyword=" + keyword + ", type=" + getType() + ", creator=" + creator + "]"; + public void setClosed(final boolean closed) { + this.closed = closed; } - @Override - public int hashCode() { - // See http://stackoverflow.com/a/113600 - final int theAnswer = 42; - final int theOthers = 37; - - return theOthers * theAnswer + this.keyword.hashCode(); + @JsonView(View.Public.class) + public SessionStatistics getStatistics() { + return statistics; } - @Override - public boolean equals(Object obj) { - if (obj == null || !obj.getClass().equals(this.getClass())) { - return false; - } - Session other = (Session) obj; - return this.keyword.equals(other.keyword); + public void setStatistics(final SessionStatistics statistics) { + this.statistics = statistics; } - } diff --git a/src/main/java/de/thm/arsnova/entities/SessionStatistics.java b/src/main/java/de/thm/arsnova/entities/SessionStatistics.java new file mode 100644 index 000000000..890be0bea --- /dev/null +++ b/src/main/java/de/thm/arsnova/entities/SessionStatistics.java @@ -0,0 +1,61 @@ +package de.thm.arsnova.entities; + +import com.fasterxml.jackson.annotation.JsonView; +import de.thm.arsnova.entities.serialization.View; + +public class SessionStatistics { + private int contentCount = 0; + private int answerCount = 0; + private int unreadAnswerCount = 0; + private int commentCount = 0; + private int unreadCommentCount = 0; + + public SessionStatistics() { + + } + + @JsonView(View.Public.class) + public int getContentCount() { + return contentCount; + } + + public void setContentCount(int contentCount) { + this.contentCount = contentCount; + } + + @JsonView(View.Public.class) + public int getAnswerCount() { + return answerCount; + } + + public void setAnswerCount(int answerCount) { + this.answerCount = answerCount; + } + + @JsonView(View.Public.class) + public int getUnreadAnswerCount() { + return unreadAnswerCount; + } + + public void setUnreadAnswerCount(int unreadAnswerCount) { + this.unreadAnswerCount = unreadAnswerCount; + } + + @JsonView(View.Public.class) + public int getCommentCount() { + return commentCount; + } + + public void setCommentCount(int commentCount) { + this.commentCount = commentCount; + } + + @JsonView(View.Public.class) + public int getUnreadCommentCount() { + return unreadCommentCount; + } + + public void setUnreadCommentCount(int unreadCommentCount) { + this.unreadCommentCount = unreadCommentCount; + } +} diff --git a/src/main/java/de/thm/arsnova/entities/VisitedSession.java b/src/main/java/de/thm/arsnova/entities/VisitedSession.java index 26bd030bd..90bbf9abf 100644 --- a/src/main/java/de/thm/arsnova/entities/VisitedSession.java +++ b/src/main/java/de/thm/arsnova/entities/VisitedSession.java @@ -18,6 +18,7 @@ package de.thm.arsnova.entities; import com.fasterxml.jackson.annotation.JsonView; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.serialization.View; /** diff --git a/src/main/java/de/thm/arsnova/entities/migration/V2Migrator.java b/src/main/java/de/thm/arsnova/entities/migration/V2Migrator.java index 83a84eee5..93b6aa898 100644 --- a/src/main/java/de/thm/arsnova/entities/migration/V2Migrator.java +++ b/src/main/java/de/thm/arsnova/entities/migration/V2Migrator.java @@ -2,11 +2,13 @@ package de.thm.arsnova.entities.migration; import de.thm.arsnova.entities.ChoiceAnswer; import de.thm.arsnova.entities.ChoiceQuestionContent; +import de.thm.arsnova.entities.DbUser; import de.thm.arsnova.entities.Entity; import de.thm.arsnova.entities.TextAnswer; import de.thm.arsnova.entities.migration.v2.Answer; import de.thm.arsnova.entities.migration.v2.AnswerOption; import de.thm.arsnova.entities.migration.v2.Content; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.ArrayList; import java.util.List; @@ -17,6 +19,21 @@ public class V2Migrator { to.setRevision(from.getRevision()); } + public de.thm.arsnova.entities.Session migrate(final Session from, final DbUser owner) { + if (!owner.getUsername().equals(from.getCreator())) { + throw new IllegalArgumentException("Username of owner object does not match session creator."); + } + final de.thm.arsnova.entities.Session to = new de.thm.arsnova.entities.Session(); + copyCommonProperties(from, to); + to.setShortId(from.getKeyword()); + to.setOwnerId(owner.getId()); + to.setName(from.getName()); + to.setAbbreviation(from.getShortName()); + to.setClosed(!from.isActive()); + + return to; + } + public de.thm.arsnova.entities.Content migrate(final Content from) { de.thm.arsnova.entities.Content to; switch (from.getQuestionType()) { diff --git a/src/main/java/de/thm/arsnova/entities/migration/v2/Session.java b/src/main/java/de/thm/arsnova/entities/migration/v2/Session.java new file mode 100644 index 000000000..13e6191f5 --- /dev/null +++ b/src/main/java/de/thm/arsnova/entities/migration/v2/Session.java @@ -0,0 +1,366 @@ +/* + * 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.entities.migration.v2; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonView; +import de.thm.arsnova.entities.Entity; +import de.thm.arsnova.entities.ScoreOptions; +import de.thm.arsnova.entities.User; +import de.thm.arsnova.entities.serialization.View; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * Represents an ARSnova session. + */ +@ApiModel(value = "session", description = "the session entity") +public class Session implements Entity { + private String id; + private String rev; + private String name; + private String shortName; + private String keyword; + private String creator; + private boolean active; + private long lastOwnerActivity; + private String courseType; + private String courseId; + private long creationTime; + private ScoreOptions learningProgressOptions = new ScoreOptions(); + private SessionFeature features = new SessionFeature(); + + private String ppAuthorName; + private String ppAuthorMail; + private String ppUniversity; + private String ppLogo; + private String ppSubject; + private String ppLicense; + private String ppDescription; + private String ppFaculty; + private String ppLevel; + private String sessionType; + private boolean feedbackLock; + private boolean flipFlashcards; + + @JsonView({View.Persistence.class, View.Public.class}) + public String getId() { + return id; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setId(final String id) { + this.id = id; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public String getRevision() { + return rev; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setRevision(final String rev) { + this.rev = rev; + } + + @ApiModelProperty(required = true, value = "the name") + @JsonView({View.Persistence.class, View.Public.class}) + public String getName() { + return name; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setName(final String name) { + this.name = name; + } + + @ApiModelProperty(required = true, value = "the short name") + @JsonView({View.Persistence.class, View.Public.class}) + public String getShortName() { + return shortName; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setShortName(final String shortName) { + this.shortName = shortName; + } + + @ApiModelProperty(required = true, value = "the keyword") + @JsonView({View.Persistence.class, View.Public.class}) + public String getKeyword() { + return keyword; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setKeyword(final String keyword) { + this.keyword = keyword; + } + + @ApiModelProperty(required = true, value = "the session creator") + @JsonView(View.Persistence.class) + public String getCreator() { + return creator; + } + + @JsonView(View.Persistence.class) + public void setCreator(final String creator) { + this.creator = creator; + } + + @ApiModelProperty(required = true, value = "true for active session") + @JsonView({View.Persistence.class, View.Public.class}) + public boolean isActive() { + return active; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setActive(final boolean active) { + this.active = active; + } + + @ApiModelProperty(required = true, value = "timestamp from the last activity of the owner") + @JsonView(View.Persistence.class) + public long getLastOwnerActivity() { + return lastOwnerActivity; + } + + @JsonView(View.Persistence.class) + public void setLastOwnerActivity(final long lastOwnerActivity) { + this.lastOwnerActivity = lastOwnerActivity; + } + + public boolean isCreator(final User user) { + return user.getUsername().equals(creator); + } + + @ApiModelProperty(required = true, value = "the source the course comes from (example: moodle)") + @JsonView({View.Persistence.class, View.Public.class}) + public String getCourseType() { + return courseType; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setCourseType(final String courseType) { + this.courseType = courseType; + } + + @ApiModelProperty(required = true, value = "the course ID") + @JsonView({View.Persistence.class, View.Public.class}) + public String getCourseId() { + return courseId; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setCourseId(final String courseId) { + this.courseId = courseId; + } + + @JsonIgnore + public boolean isCourseSession() { + return getCourseId() != null && !getCourseId().isEmpty(); + } + + @ApiModelProperty(required = true, value = "creation timestamp") + @JsonView({View.Persistence.class, View.Public.class}) + public long getCreationTime() { + return creationTime; + } + + @JsonView(View.Persistence.class) + public void setCreationTime(long creationTime) { + this.creationTime = creationTime; + } + + @ApiModelProperty(required = true, value = "the score options") + @JsonView({View.Persistence.class, View.Public.class}) + public ScoreOptions getLearningProgressOptions() { + return learningProgressOptions; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setLearningProgressOptions(ScoreOptions learningProgressOptions) { + this.learningProgressOptions = learningProgressOptions; + } + + @ApiModelProperty(required = true, value = "the enabled features (e.g. feedback, interposed, learning Progress, lecture)") + @JsonView({View.Persistence.class, View.Public.class}) + public SessionFeature getFeatures() { + return features; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setFeatures(SessionFeature features) { + this.features = features; + } + + @ApiModelProperty(required = true, value = "the public pool author name") + @JsonView({View.Persistence.class, View.Public.class}) + public String getPpAuthorName() { + return ppAuthorName; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setPpAuthorName(final String ppAuthorName) { + this.ppAuthorName = ppAuthorName; + } + + @ApiModelProperty(required = true, value = "the public pool author email") + @JsonView({View.Persistence.class, View.Public.class}) + public String getPpAuthorMail() { + return ppAuthorMail; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setPpAuthorMail(final String ppAuthorMail) { + this.ppAuthorMail = ppAuthorMail; + } + + @ApiModelProperty(required = true, value = "the public pool university") + @JsonView({View.Persistence.class, View.Public.class}) + public String getPpUniversity() { + return ppUniversity; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setPpUniversity(final String ppUniversity) { + this.ppUniversity = ppUniversity; + } + + @ApiModelProperty(required = true, value = "the public pool logo") + @JsonView({View.Persistence.class, View.Public.class}) + public String getPpLogo() { + return ppLogo; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setPpLogo(final String ppLogo) { + this.ppLogo = ppLogo; + } + + @ApiModelProperty(required = true, value = "used to display subject") + @JsonView({View.Persistence.class, View.Public.class}) + public String getPpSubject() { + return ppSubject; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setPpSubject(final String ppSubject) { + this.ppSubject = ppSubject; + } + + @ApiModelProperty(required = true, value = "the public pool license") + @JsonView({View.Persistence.class, View.Public.class}) + public String getPpLicense() { + return ppLicense; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setPpLicense(final String ppLicense) { + this.ppLicense = ppLicense; + } + + @ApiModelProperty(required = true, value = "the public pool description") + @JsonView({View.Persistence.class, View.Public.class}) + public String getPpDescription() { + return ppDescription; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setPpDescription(final String ppDescription) { + this.ppDescription = ppDescription; + } + + @ApiModelProperty(required = true, value = "the public pool faculty") + @JsonView({View.Persistence.class, View.Public.class}) + public String getPpFaculty() { + return ppFaculty; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setPpFaculty(final String ppFaculty) { + this.ppFaculty = ppFaculty; + } + + @ApiModelProperty(required = true, value = "the public pool level") + @JsonView({View.Persistence.class, View.Public.class}) + public String getPpLevel() { + return ppLevel; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setPpLevel(final String ppLevel) { + this.ppLevel = ppLevel; + } + + @ApiModelProperty(required = true, value = "the session type") + @JsonView({View.Persistence.class, View.Public.class}) + public String getSessionType() { + return sessionType; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setSessionType(final String sessionType) { + this.sessionType = sessionType; + } + + @ApiModelProperty(required = true, value = "the feedback lock status") + @JsonView({View.Persistence.class, View.Public.class}) + public boolean getFeedbackLock() { + return feedbackLock; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setFeedbackLock(Boolean lock) { + this.feedbackLock = lock; + } + + @ApiModelProperty(required = true, value = "the flashcard flip condition") + @JsonView({View.Persistence.class, View.Public.class}) + public boolean getFlipFlashcards() { + return flipFlashcards; + } + + @JsonView({View.Persistence.class, View.Public.class}) + public void setFlipFlashcards(Boolean flip) { + this.flipFlashcards = flip; + } + + @Override + public String toString() { + return "Session [keyword=" + keyword + ", type=" + getType() + ", creator=" + creator + "]"; + } + + @Override + public int hashCode() { + // See http://stackoverflow.com/a/113600 + final int theAnswer = 42; + final int theOthers = 37; + + return theOthers * theAnswer + this.keyword.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj == null || !obj.getClass().equals(this.getClass())) { + return false; + } + Session other = (Session) obj; + return this.keyword.equals(other.keyword); + } + +} diff --git a/src/main/java/de/thm/arsnova/entities/SessionFeature.java b/src/main/java/de/thm/arsnova/entities/migration/v2/SessionFeature.java similarity index 99% rename from src/main/java/de/thm/arsnova/entities/SessionFeature.java rename to src/main/java/de/thm/arsnova/entities/migration/v2/SessionFeature.java index acecd49fa..554965000 100644 --- a/src/main/java/de/thm/arsnova/entities/SessionFeature.java +++ b/src/main/java/de/thm/arsnova/entities/migration/v2/SessionFeature.java @@ -15,7 +15,7 @@ * 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.entities; +package de.thm.arsnova.entities.migration.v2; import com.fasterxml.jackson.annotation.JsonView; import de.thm.arsnova.entities.serialization.View; diff --git a/src/main/java/de/thm/arsnova/entities/SessionInfo.java b/src/main/java/de/thm/arsnova/entities/migration/v2/SessionInfo.java similarity index 99% rename from src/main/java/de/thm/arsnova/entities/SessionInfo.java rename to src/main/java/de/thm/arsnova/entities/migration/v2/SessionInfo.java index 0f7c155fe..d280d0455 100644 --- a/src/main/java/de/thm/arsnova/entities/SessionInfo.java +++ b/src/main/java/de/thm/arsnova/entities/migration/v2/SessionInfo.java @@ -15,7 +15,7 @@ * 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.entities; +package de.thm.arsnova.entities.migration.v2; import com.fasterxml.jackson.annotation.JsonView; import de.thm.arsnova.entities.serialization.View; diff --git a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java index 6993b84f1..69c7ae0f6 100644 --- a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java +++ b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java @@ -28,7 +28,7 @@ import de.thm.arsnova.entities.LogEntry; import de.thm.arsnova.entities.Motd; import de.thm.arsnova.entities.migration.v2.Content; import de.thm.arsnova.entities.MotdList; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java b/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java index be1b1e6ba..3d463db97 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java +++ b/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java @@ -19,7 +19,7 @@ package de.thm.arsnova.entities.transport; import de.thm.arsnova.entities.migration.v2.Answer; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; /** diff --git a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java index 5ebaca6e1..3d4e8cccf 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java +++ b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java @@ -22,9 +22,9 @@ import de.thm.arsnova.entities.migration.v2.Answer; import de.thm.arsnova.entities.Comment; import de.thm.arsnova.entities.migration.v2.Content; import de.thm.arsnova.entities.Motd; -import de.thm.arsnova.entities.Session; -import de.thm.arsnova.entities.SessionFeature; -import de.thm.arsnova.entities.SessionInfo; +import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.SessionFeature; +import de.thm.arsnova.entities.migration.v2.SessionInfo; import de.thm.arsnova.entities.User; import de.thm.arsnova.entities.serialization.View; import io.swagger.annotations.ApiModel; diff --git a/src/main/java/de/thm/arsnova/events/ChangeScoreEvent.java b/src/main/java/de/thm/arsnova/events/ChangeScoreEvent.java index 54b2c9fe7..4a626fe55 100644 --- a/src/main/java/de/thm/arsnova/events/ChangeScoreEvent.java +++ b/src/main/java/de/thm/arsnova/events/ChangeScoreEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a score related value changes. diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java index bdd05354e..b7f4683fd 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever all answers of all lecture questions of a session are deleted. diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java index 557be91ae..a72e223a1 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever all answers of all preparation questions of a session are deleted. diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java index f716671ed..fd4cf53c3 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever all answers of all questions of a session are deleted. diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java index 6a2872eea..085896e14 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever all questions of a session are deleted. Note that this implies that all answers are deleted as well, diff --git a/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java index bda39f5d8..db355a93d 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a single answer is deleted. diff --git a/src/main/java/de/thm/arsnova/events/DeleteCommentEvent.java b/src/main/java/de/thm/arsnova/events/DeleteCommentEvent.java index ff812418e..6689ca226 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteCommentEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteCommentEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.Comment; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever an comment is deleted. diff --git a/src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java b/src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java index d463dd85d..61edead65 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import java.util.Set; diff --git a/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java b/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java index d9a735008..2dffe285f 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a content is deleted. diff --git a/src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java b/src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java index 9d1a60d92..d99e6a4be 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a session is deleted. Note that this implies that all related data such as comments, diff --git a/src/main/java/de/thm/arsnova/events/FeatureChangeEvent.java b/src/main/java/de/thm/arsnova/events/FeatureChangeEvent.java index 050680695..c117689c4 100644 --- a/src/main/java/de/thm/arsnova/events/FeatureChangeEvent.java +++ b/src/main/java/de/thm/arsnova/events/FeatureChangeEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a new session is created. diff --git a/src/main/java/de/thm/arsnova/events/FlipFlashcardsEvent.java b/src/main/java/de/thm/arsnova/events/FlipFlashcardsEvent.java index 0ae01bedb..4681120f3 100644 --- a/src/main/java/de/thm/arsnova/events/FlipFlashcardsEvent.java +++ b/src/main/java/de/thm/arsnova/events/FlipFlashcardsEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever voting on a question is disabled. diff --git a/src/main/java/de/thm/arsnova/events/LockFeedbackEvent.java b/src/main/java/de/thm/arsnova/events/LockFeedbackEvent.java index 6eea78007..d196ceb85 100644 --- a/src/main/java/de/thm/arsnova/events/LockFeedbackEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockFeedbackEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever voting on a question is disabled. diff --git a/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java b/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java index 26a74e126..97dcfdd0a 100644 --- a/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a content is disabled, i.e., it is hidden from students. diff --git a/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java b/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java index cfe6bf95d..58c001216 100644 --- a/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.List; diff --git a/src/main/java/de/thm/arsnova/events/LockVoteEvent.java b/src/main/java/de/thm/arsnova/events/LockVoteEvent.java index f55f84de1..303b647ea 100644 --- a/src/main/java/de/thm/arsnova/events/LockVoteEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockVoteEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/de/thm/arsnova/events/LockVotesEvent.java b/src/main/java/de/thm/arsnova/events/LockVotesEvent.java index a4c4d5b42..7288fe96e 100644 --- a/src/main/java/de/thm/arsnova/events/LockVotesEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockVotesEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.List; diff --git a/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java b/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java index 94ccc2488..d365616b3 100644 --- a/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java +++ b/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java @@ -19,7 +19,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Answer; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; /** diff --git a/src/main/java/de/thm/arsnova/events/NewCommentEvent.java b/src/main/java/de/thm/arsnova/events/NewCommentEvent.java index 7949ef50d..5d5c57ff7 100644 --- a/src/main/java/de/thm/arsnova/events/NewCommentEvent.java +++ b/src/main/java/de/thm/arsnova/events/NewCommentEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.Comment; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a new comment is added. diff --git a/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java b/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java index 0f9562543..9c807a788 100644 --- a/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java +++ b/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever the feedback changes. diff --git a/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java b/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java index 1176a3f9b..7771ec181 100644 --- a/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a new content is added. diff --git a/src/main/java/de/thm/arsnova/events/NewSessionEvent.java b/src/main/java/de/thm/arsnova/events/NewSessionEvent.java index 34845b8b4..a61e9e0dd 100644 --- a/src/main/java/de/thm/arsnova/events/NewSessionEvent.java +++ b/src/main/java/de/thm/arsnova/events/NewSessionEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a new session is created. diff --git a/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java index 79abfeb0f..83fb938ec 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a peer instruction round is canceled. diff --git a/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java index ec93fff87..fc53399d6 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java index 868996e0b..366c92a71 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java index d869b20ec..8a7cebfeb 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/de/thm/arsnova/events/SessionEvent.java b/src/main/java/de/thm/arsnova/events/SessionEvent.java index fc393ddfb..ae85d3b10 100644 --- a/src/main/java/de/thm/arsnova/events/SessionEvent.java +++ b/src/main/java/de/thm/arsnova/events/SessionEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Base class for all {@link ArsnovaEvent}s that are related to a session. diff --git a/src/main/java/de/thm/arsnova/events/StatusSessionEvent.java b/src/main/java/de/thm/arsnova/events/StatusSessionEvent.java index 6ee65ef98..17abf8c2d 100644 --- a/src/main/java/de/thm/arsnova/events/StatusSessionEvent.java +++ b/src/main/java/de/thm/arsnova/events/StatusSessionEvent.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever the status of a session changes, i.e., it is enabled or disabled. diff --git a/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java b/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java index e5bc95e89..7d545cd69 100644 --- a/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; /** * Fires whenever a content is enabled, i.e., it becomes visible to students. diff --git a/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java b/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java index 555349b43..f30a992df 100644 --- a/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java +++ b/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.List; diff --git a/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java b/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java index 109555edd..1a2e875fd 100644 --- a/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java +++ b/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java b/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java index 83bd98bf1..c7df28fa4 100644 --- a/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java +++ b/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import java.util.List; diff --git a/src/main/java/de/thm/arsnova/persistance/SessionRepository.java b/src/main/java/de/thm/arsnova/persistance/SessionRepository.java index 6d2b31f63..1179b009a 100644 --- a/src/main/java/de/thm/arsnova/persistance/SessionRepository.java +++ b/src/main/java/de/thm/arsnova/persistance/SessionRepository.java @@ -19,8 +19,8 @@ package de.thm.arsnova.persistance; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.entities.LoggedIn; -import de.thm.arsnova.entities.Session; -import de.thm.arsnova.entities.SessionInfo; +import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.SessionInfo; import de.thm.arsnova.entities.User; import de.thm.arsnova.entities.transport.ImportExportSession; import org.springframework.data.repository.CrudRepository; diff --git a/src/main/java/de/thm/arsnova/persistance/SessionStatisticsRepository.java b/src/main/java/de/thm/arsnova/persistance/SessionStatisticsRepository.java index 579128041..4d8f729a0 100644 --- a/src/main/java/de/thm/arsnova/persistance/SessionStatisticsRepository.java +++ b/src/main/java/de/thm/arsnova/persistance/SessionStatisticsRepository.java @@ -1,7 +1,7 @@ package de.thm.arsnova.persistance; import de.thm.arsnova.services.score.Score; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; public interface SessionStatisticsRepository { Score getLearningProgress(Session session); diff --git a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionRepository.java b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionRepository.java index c5f6d0528..0d55949d1 100644 --- a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionRepository.java +++ b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionRepository.java @@ -20,8 +20,8 @@ package de.thm.arsnova.persistance.couchdb; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.entities.Comment; import de.thm.arsnova.entities.LoggedIn; -import de.thm.arsnova.entities.Session; -import de.thm.arsnova.entities.SessionInfo; +import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.SessionInfo; import de.thm.arsnova.entities.User; import de.thm.arsnova.entities.VisitedSession; import de.thm.arsnova.entities.transport.ImportExportSession; diff --git a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionStatisticsRepository.java b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionStatisticsRepository.java index e0c5f4927..214c061b4 100644 --- a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionStatisticsRepository.java +++ b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionStatisticsRepository.java @@ -2,7 +2,7 @@ package de.thm.arsnova.persistance.couchdb; import com.fasterxml.jackson.databind.JsonNode; import de.thm.arsnova.services.score.Score; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.persistance.SessionStatisticsRepository; import org.ektorp.ComplexKey; import org.ektorp.CouchDbConnector; diff --git a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java index 965073a35..ce58a7803 100644 --- a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java +++ b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java @@ -19,7 +19,7 @@ package de.thm.arsnova.security; import de.thm.arsnova.entities.Comment; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import de.thm.arsnova.persistance.CommentRepository; import de.thm.arsnova.persistance.ContentRepository; diff --git a/src/main/java/de/thm/arsnova/services/CommentServiceImpl.java b/src/main/java/de/thm/arsnova/services/CommentServiceImpl.java index 0066191a7..4678aff6e 100644 --- a/src/main/java/de/thm/arsnova/services/CommentServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/CommentServiceImpl.java @@ -2,7 +2,7 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.Comment; import de.thm.arsnova.entities.CommentReadingCount; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import de.thm.arsnova.events.DeleteCommentEvent; import de.thm.arsnova.events.NewCommentEvent; diff --git a/src/main/java/de/thm/arsnova/services/ContentServiceImpl.java b/src/main/java/de/thm/arsnova/services/ContentServiceImpl.java index fc1d060fb..91311b0ad 100644 --- a/src/main/java/de/thm/arsnova/services/ContentServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/ContentServiceImpl.java @@ -22,7 +22,7 @@ import de.thm.arsnova.persistance.LogEntryRepository; import de.thm.arsnova.util.ImageUtils; import de.thm.arsnova.entities.migration.v2.Answer; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import de.thm.arsnova.events.*; import de.thm.arsnova.exceptions.BadRequestException; diff --git a/src/main/java/de/thm/arsnova/services/FeedbackServiceImpl.java b/src/main/java/de/thm/arsnova/services/FeedbackServiceImpl.java index 25845d2ae..169ca9722 100644 --- a/src/main/java/de/thm/arsnova/services/FeedbackServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/FeedbackServiceImpl.java @@ -18,7 +18,7 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.Feedback; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import de.thm.arsnova.events.DeleteFeedbackForSessionsEvent; import de.thm.arsnova.events.NewFeedbackEvent; diff --git a/src/main/java/de/thm/arsnova/services/FeedbackStorageService.java b/src/main/java/de/thm/arsnova/services/FeedbackStorageService.java index 279f703e7..cd5839895 100644 --- a/src/main/java/de/thm/arsnova/services/FeedbackStorageService.java +++ b/src/main/java/de/thm/arsnova/services/FeedbackStorageService.java @@ -1,7 +1,7 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.Feedback; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import java.util.List; diff --git a/src/main/java/de/thm/arsnova/services/FeedbackStorageServiceImpl.java b/src/main/java/de/thm/arsnova/services/FeedbackStorageServiceImpl.java index cb72d608f..88f2940c0 100644 --- a/src/main/java/de/thm/arsnova/services/FeedbackStorageServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/FeedbackStorageServiceImpl.java @@ -18,7 +18,7 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.Feedback; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Isolation; diff --git a/src/main/java/de/thm/arsnova/services/MotdServiceImpl.java b/src/main/java/de/thm/arsnova/services/MotdServiceImpl.java index b0465a031..0aaad4ba9 100644 --- a/src/main/java/de/thm/arsnova/services/MotdServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/MotdServiceImpl.java @@ -19,7 +19,7 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.Motd; import de.thm.arsnova.entities.MotdList; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import de.thm.arsnova.exceptions.BadRequestException; import de.thm.arsnova.persistance.MotdListRepository; diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index 8b8f65040..02bba48e8 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -18,9 +18,9 @@ package de.thm.arsnova.services; import de.thm.arsnova.connector.model.Course; -import de.thm.arsnova.entities.Session; -import de.thm.arsnova.entities.SessionFeature; -import de.thm.arsnova.entities.SessionInfo; +import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.SessionFeature; +import de.thm.arsnova.entities.migration.v2.SessionInfo; import de.thm.arsnova.entities.User; import de.thm.arsnova.entities.transport.ImportExportSession; import de.thm.arsnova.entities.transport.ScoreStatistics; diff --git a/src/main/java/de/thm/arsnova/services/SessionServiceImpl.java b/src/main/java/de/thm/arsnova/services/SessionServiceImpl.java index d2a0ee6a1..9442f510f 100644 --- a/src/main/java/de/thm/arsnova/services/SessionServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/SessionServiceImpl.java @@ -27,9 +27,9 @@ import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.services.score.ScoreCalculatorFactory; import de.thm.arsnova.services.score.ScoreCalculator; import de.thm.arsnova.entities.ScoreOptions; -import de.thm.arsnova.entities.Session; -import de.thm.arsnova.entities.SessionFeature; -import de.thm.arsnova.entities.SessionInfo; +import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.SessionFeature; +import de.thm.arsnova.entities.migration.v2.SessionInfo; import de.thm.arsnova.entities.User; import de.thm.arsnova.entities.transport.ImportExportSession; import de.thm.arsnova.entities.transport.ScoreStatistics; diff --git a/src/main/java/de/thm/arsnova/services/UserSessionService.java b/src/main/java/de/thm/arsnova/services/UserSessionService.java index 79ab4f84a..3ee83b7a6 100644 --- a/src/main/java/de/thm/arsnova/services/UserSessionService.java +++ b/src/main/java/de/thm/arsnova/services/UserSessionService.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.services; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import java.util.UUID; diff --git a/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java b/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java index da33beaad..8ae677d2d 100644 --- a/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.services; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.ScopedProxyMode; diff --git a/src/main/java/de/thm/arsnova/services/score/ScoreCalculator.java b/src/main/java/de/thm/arsnova/services/score/ScoreCalculator.java index 25f53022d..f4c02c8ec 100644 --- a/src/main/java/de/thm/arsnova/services/score/ScoreCalculator.java +++ b/src/main/java/de/thm/arsnova/services/score/ScoreCalculator.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.services.score; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import de.thm.arsnova.entities.transport.ScoreStatistics; diff --git a/src/main/java/de/thm/arsnova/services/score/VariantScoreCalculator.java b/src/main/java/de/thm/arsnova/services/score/VariantScoreCalculator.java index f518ac6fe..19e45034a 100644 --- a/src/main/java/de/thm/arsnova/services/score/VariantScoreCalculator.java +++ b/src/main/java/de/thm/arsnova/services/score/VariantScoreCalculator.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.services.score; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.User; import de.thm.arsnova.entities.transport.ScoreStatistics; import de.thm.arsnova.persistance.SessionStatisticsRepository; diff --git a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java index 9c3f88c20..a343a7230 100644 --- a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java +++ b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java @@ -31,6 +31,7 @@ import com.corundumstudio.socketio.protocol.PacketType; import de.thm.arsnova.entities.Comment; import de.thm.arsnova.entities.ScoreOptions; import de.thm.arsnova.entities.User; +import de.thm.arsnova.entities.migration.v2.SessionFeature; import de.thm.arsnova.events.*; import de.thm.arsnova.exceptions.NoContentException; import de.thm.arsnova.exceptions.NotFoundException; @@ -149,7 +150,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova return; } final String sessionKey = userService.getSessionByUsername(u.getUsername()); - final de.thm.arsnova.entities.Session session = sessionService.getInternal(sessionKey, u); + final de.thm.arsnova.entities.migration.v2.Session session = sessionService.getInternal(sessionKey, u); if (session.getFeedbackLock()) { logger.debug("Feedback save blocked: {}", u, sessionKey, data.getValue()); @@ -230,7 +231,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova public void onData(SocketIOClient client, ScoreOptions scoreOptions, AckRequest ack) { final User user = userService.getUser2SocketId(client.getSessionId()); final String sessionKey = userService.getSessionByUsername(user.getUsername()); - final de.thm.arsnova.entities.Session session = sessionService.getInternal(sessionKey, user); + final de.thm.arsnova.entities.migration.v2.Session session = sessionService.getInternal(sessionKey, user); if (session.isCreator(user)) { session.setLearningProgressOptions(scoreOptions); sessionService.updateInternal(session, user); @@ -334,9 +335,9 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova this.useSSL = useSSL; } - public void reportDeletedFeedback(final User user, final Set<de.thm.arsnova.entities.Session> arsSessions) { + public void reportDeletedFeedback(final User user, final Set<de.thm.arsnova.entities.migration.v2.Session> arsSessions) { final List<String> keywords = new ArrayList<>(); - for (final de.thm.arsnova.entities.Session session : arsSessions) { + for (final de.thm.arsnova.entities.migration.v2.Session session : arsSessions) { keywords.add(session.getKeyword()); } this.sendToUser(user, "feedbackReset", keywords); @@ -371,8 +372,8 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova * relevant Socket.IO data, the client needs to know after joining a session. */ public void reportSessionDataToClient(final String sessionKey, final User user, final SocketIOClient client) { - final de.thm.arsnova.entities.Session session = sessionService.getInternal(sessionKey, user); - final de.thm.arsnova.entities.SessionFeature features = sessionService.getFeatures(sessionKey); + final de.thm.arsnova.entities.migration.v2.Session session = sessionService.getInternal(sessionKey, user); + final SessionFeature features = sessionService.getFeatures(sessionKey); client.sendEvent("unansweredLecturerQuestions", contentService.getUnAnsweredLectureQuestionIds(sessionKey, user)); client.sendEvent("unansweredPreparationQuestions", contentService.getUnAnsweredPreparationQuestionIds(sessionKey, user)); @@ -397,7 +398,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova } } - public void reportUpdatedFeedbackForSession(final de.thm.arsnova.entities.Session session) { + public void reportUpdatedFeedbackForSession(final de.thm.arsnova.entities.migration.v2.Session session) { final de.thm.arsnova.entities.Feedback fb = feedbackService.getBySessionKey(session.getKeyword()); broadcastInSession(session.getKeyword(), "feedbackData", fb.getValues()); try { @@ -408,7 +409,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova } } - public void reportFeedbackForUserInSession(final de.thm.arsnova.entities.Session session, final User user) { + public void reportFeedbackForUserInSession(final de.thm.arsnova.entities.migration.v2.Session session, final User user) { final de.thm.arsnova.entities.Feedback fb = feedbackService.getBySessionKey(session.getKeyword()); Long averageFeedback; try { @@ -435,16 +436,16 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova broadcastInSession(sessionKey, "activeUserCountData", count); } - public void reportAnswersToLecturerQuestionAvailable(final de.thm.arsnova.entities.Session session, final Content content) { + public void reportAnswersToLecturerQuestionAvailable(final de.thm.arsnova.entities.migration.v2.Session session, final Content content) { broadcastInSession(session.getKeyword(), "answersToLecQuestionAvail", content.get_id()); } - public void reportAudienceQuestionAvailable(final de.thm.arsnova.entities.Session session, final Comment audienceQuestion) { + public void reportAudienceQuestionAvailable(final de.thm.arsnova.entities.migration.v2.Session session, final Comment audienceQuestion) { /* TODO role handling implementation, send this only to users with role lecturer */ broadcastInSession(session.getKeyword(), "audQuestionAvail", audienceQuestion.getId()); } - public void reportLecturerQuestionAvailable(final de.thm.arsnova.entities.Session session, final List<de.thm.arsnova.entities.migration.v2.Content> qs) { + public void reportLecturerQuestionAvailable(final de.thm.arsnova.entities.migration.v2.Session session, final List<de.thm.arsnova.entities.migration.v2.Content> qs) { List<Content> contents = new ArrayList<>(); for (de.thm.arsnova.entities.migration.v2.Content q : qs) { contents.add(new Content(q)); @@ -457,7 +458,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova broadcastInSession(session.getKeyword(), "lecturerQuestionAvailable", contents); } - public void reportLecturerQuestionsLocked(final de.thm.arsnova.entities.Session session, final List<de.thm.arsnova.entities.migration.v2.Content> qs) { + public void reportLecturerQuestionsLocked(final de.thm.arsnova.entities.migration.v2.Session session, final List<de.thm.arsnova.entities.migration.v2.Content> qs) { List<Content> contents = new ArrayList<>(); for (de.thm.arsnova.entities.migration.v2.Content q : qs) { contents.add(new Content(q)); @@ -607,7 +608,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova @Override public void visit(FeatureChangeEvent event) { final String sessionKey = event.getSession().getKeyword(); - final de.thm.arsnova.entities.SessionFeature features = event.getSession().getFeatures(); + final SessionFeature features = event.getSession().getFeatures(); broadcastInSession(sessionKey, "featureChange", features); if (features.isFlashcard() || features.isFlashcardFeature()) { diff --git a/src/test/java/de/thm/arsnova/services/DefaultEntityServiceImplTest.java b/src/test/java/de/thm/arsnova/services/DefaultEntityServiceImplTest.java index a7708c9ee..7fff5e143 100644 --- a/src/test/java/de/thm/arsnova/services/DefaultEntityServiceImplTest.java +++ b/src/test/java/de/thm/arsnova/services/DefaultEntityServiceImplTest.java @@ -5,7 +5,7 @@ import de.thm.arsnova.config.AppConfig; import de.thm.arsnova.config.TestAppConfig; import de.thm.arsnova.config.TestPersistanceConfig; import de.thm.arsnova.config.TestSecurityConfig; -import de.thm.arsnova.entities.Session; +import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.persistance.SessionRepository; import org.junit.Test; import org.junit.runner.RunWith; -- GitLab