From 653fbf698297835fc968c1383afdcc6e1cf2f4bd Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt <code@dgerhardt.net> Date: Tue, 13 Nov 2018 13:54:18 +0100 Subject: [PATCH] Add equals implementations for inner classes of Entities --- .../arsnova/model/ChoiceQuestionContent.java | 20 ++++ .../java/de/thm/arsnova/model/Content.java | 23 +++++ src/main/java/de/thm/arsnova/model/Room.java | 92 +++++++++++++++++++ .../de/thm/arsnova/model/UserProfile.java | 31 ++++++- 4 files changed, 161 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/thm/arsnova/model/ChoiceQuestionContent.java b/src/main/java/de/thm/arsnova/model/ChoiceQuestionContent.java index 400a4c00d..b470d8e95 100644 --- a/src/main/java/de/thm/arsnova/model/ChoiceQuestionContent.java +++ b/src/main/java/de/thm/arsnova/model/ChoiceQuestionContent.java @@ -6,6 +6,7 @@ import org.springframework.core.style.ToStringCreator; import java.util.ArrayList; import java.util.List; +import java.util.Objects; public class ChoiceQuestionContent extends Content { public static class AnswerOption { @@ -32,6 +33,25 @@ public class ChoiceQuestionContent extends Content { this.points = points; } + @Override + public int hashCode() { + return Objects.hash(label, points); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (!super.equals(o)) { + return false; + } + final AnswerOption that = (AnswerOption) o; + + return points == that.points && + Objects.equals(label, that.label); + } + @Override public String toString() { return new ToStringCreator(this) diff --git a/src/main/java/de/thm/arsnova/model/Content.java b/src/main/java/de/thm/arsnova/model/Content.java index 471c98a2c..64c3ba607 100644 --- a/src/main/java/de/thm/arsnova/model/Content.java +++ b/src/main/java/de/thm/arsnova/model/Content.java @@ -98,6 +98,29 @@ public class Content extends Entity { this.responsesVisible = responsesVisible; } + @Override + public int hashCode() { + return Objects.hash(round, roundEndTimestamp, visible, solutionVisible, responsesEnabled, responsesVisible); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (!super.equals(o)) { + return false; + } + final State state = (State) o; + + return round == state.round && + visible == state.visible && + solutionVisible == state.solutionVisible && + responsesEnabled == state.responsesEnabled && + responsesVisible == state.responsesVisible && + Objects.equals(roundEndTimestamp, state.roundEndTimestamp); + } + @Override public String toString() { return new ToStringCreator(this) diff --git a/src/main/java/de/thm/arsnova/model/Room.java b/src/main/java/de/thm/arsnova/model/Room.java index 676b335dd..652cf181c 100644 --- a/src/main/java/de/thm/arsnova/model/Room.java +++ b/src/main/java/de/thm/arsnova/model/Room.java @@ -49,6 +49,26 @@ public class Room extends Entity { this.autoSort = autoSort; } + @Override + public int hashCode() { + return Objects.hash(name, contentIds, autoSort); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final ContentGroup that = (ContentGroup) o; + + return autoSort == that.autoSort && + Objects.equals(name, that.name) && + Objects.equals(contentIds, that.contentIds); + } + @Override public String toString() { return new ToStringCreator(this) @@ -171,6 +191,36 @@ public class Room extends Entity { this.feedbackLocked = feedbackLocked; } + @Override + public int hashCode() { + return Objects.hash( + questionsEnabled, slidesEnabled, commentsEnabled, flashcardsEnabled, + quickSurveyEnabled, quickFeedbackEnabled, scoreEnabled, multipleRoundsEnabled, + timerEnabled, feedbackLocked); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final Settings settings = (Settings) o; + + return questionsEnabled == settings.questionsEnabled && + slidesEnabled == settings.slidesEnabled && + commentsEnabled == settings.commentsEnabled && + flashcardsEnabled == settings.flashcardsEnabled && + quickSurveyEnabled == settings.quickSurveyEnabled && + quickFeedbackEnabled == settings.quickFeedbackEnabled && + scoreEnabled == settings.scoreEnabled && + multipleRoundsEnabled == settings.multipleRoundsEnabled && + timerEnabled == settings.timerEnabled && + feedbackLocked == settings.feedbackLocked; + } + @Override public String toString() { return new ToStringCreator(this) @@ -245,6 +295,28 @@ public class Room extends Entity { this.organizationUnit = organizationUnit; } + @Override + public int hashCode() { + return Objects.hash(name, mail, organizationName, organizationLogo, organizationUnit); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final Author author = (Author) o; + + return Objects.equals(name, author.name) && + Objects.equals(mail, author.mail) && + Objects.equals(organizationName, author.organizationName) && + Objects.equals(organizationLogo, author.organizationLogo) && + Objects.equals(organizationUnit, author.organizationUnit); + } + @Override public String toString() { return new ToStringCreator(this) @@ -292,6 +364,26 @@ public class Room extends Entity { this.license = license; } + @Override + public int hashCode() { + return Objects.hash(category, level, license); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + final PoolProperties that = (PoolProperties) o; + + return Objects.equals(category, that.category) && + Objects.equals(level, that.level) && + Objects.equals(license, that.license); + } + @Override public String toString() { return new ToStringCreator(this) diff --git a/src/main/java/de/thm/arsnova/model/UserProfile.java b/src/main/java/de/thm/arsnova/model/UserProfile.java index 0fc793273..84926b24e 100644 --- a/src/main/java/de/thm/arsnova/model/UserProfile.java +++ b/src/main/java/de/thm/arsnova/model/UserProfile.java @@ -69,6 +69,27 @@ public class UserProfile extends Entity { this.passwordResetTime = passwordResetTime; } + @Override + public int hashCode() { + return Objects.hash(password, activationKey, passwordResetKey, passwordResetTime); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (!super.equals(o)) { + return false; + } + final Account account = (Account) o; + + return Objects.equals(password, account.password) && + Objects.equals(activationKey, account.activationKey) && + Objects.equals(passwordResetKey, account.passwordResetKey) && + Objects.equals(passwordResetTime, account.passwordResetTime); + } + @Override public String toString() { return new ToStringCreator(this) @@ -113,6 +134,11 @@ public class UserProfile extends Entity { this.lastVisit = lastVisit; } + @Override + public int hashCode() { + return Objects.hash(roomId); + } + @Override public boolean equals(final Object o) { if (this == o) { @@ -126,11 +152,6 @@ public class UserProfile extends Entity { return Objects.equals(roomId, that.roomId); } - @Override - public int hashCode() { - return Objects.hash(roomId); - } - @Override public String toString() { return new ToStringCreator(this) -- GitLab