From 2e334abb49850e10b8c0f238a11a5ebc1571b7e2 Mon Sep 17 00:00:00 2001
From: Dominika Zemanovicova <xzemanov@fi.muni.cz>
Date: Sun, 16 Apr 2023 20:36:19 +0200
Subject: [PATCH] Use lombok for equals and hashcode

---
 .../fuseri/model/dto/exercise/AnswerDto.java  | 22 ++-----------------
 .../model/dto/exercise/ExerciseDto.java       | 16 ++------------
 .../model/dto/exercise/QuestionDto.java       | 15 ++-----------
 3 files changed, 6 insertions(+), 47 deletions(-)

diff --git a/application/model/src/main/java/org/fuseri/model/dto/exercise/AnswerDto.java b/application/model/src/main/java/org/fuseri/model/dto/exercise/AnswerDto.java
index 43324490..2f87806e 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/exercise/AnswerDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/exercise/AnswerDto.java
@@ -3,13 +3,13 @@ package org.fuseri.model.dto.exercise;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import org.fuseri.model.dto.common.DomainObjectDto;
 
-import java.util.Objects;
-
 @AllArgsConstructor
 @Getter
+@EqualsAndHashCode(callSuper = false)
 public class AnswerDto extends DomainObjectDto {
 
     @NotBlank
@@ -17,22 +17,4 @@ public class AnswerDto extends DomainObjectDto {
 
     @NotNull
     private boolean correct;
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        AnswerDto answerDto = (AnswerDto) o;
-
-        if (correct != answerDto.correct) return false;
-        return Objects.equals(text, answerDto.text);
-    }
-
-    @Override
-    public int hashCode() {
-        int result = text != null ? text.hashCode() : 0;
-        result = 31 * result + (correct ? 1 : 0);
-        return result;
-    }
 }
diff --git a/application/model/src/main/java/org/fuseri/model/dto/exercise/ExerciseDto.java b/application/model/src/main/java/org/fuseri/model/dto/exercise/ExerciseDto.java
index db61e6bf..537d0e63 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/exercise/ExerciseDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/exercise/ExerciseDto.java
@@ -3,14 +3,14 @@ package org.fuseri.model.dto.exercise;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.PositiveOrZero;
+import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 import org.fuseri.model.dto.common.DomainObjectDto;
 
-import java.util.Objects;
-
 @Getter
 @Setter
+@EqualsAndHashCode(callSuper = false)
 public class ExerciseDto extends DomainObjectDto {
 
     @NotBlank
@@ -25,16 +25,4 @@ public class ExerciseDto extends DomainObjectDto {
 
     @NotNull
     private long courseId;
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof ExerciseDto that)) return false;
-        return getDifficulty() == that.getDifficulty() && getCourseId() == that.getCourseId() && Objects.equals(getName(), that.getName()) && Objects.equals(getDescription(), that.getDescription());
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(getName(), getDescription(), getDifficulty(), getCourseId());
-    }
 }
diff --git a/application/model/src/main/java/org/fuseri/model/dto/exercise/QuestionDto.java b/application/model/src/main/java/org/fuseri/model/dto/exercise/QuestionDto.java
index f0dc4b2a..94ddd64f 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/exercise/QuestionDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/exercise/QuestionDto.java
@@ -4,18 +4,19 @@ import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 import org.fuseri.model.dto.common.DomainObjectDto;
 
 import java.util.List;
-import java.util.Objects;
 
 @Getter
 @Setter
 @AllArgsConstructor
 @NoArgsConstructor
+@EqualsAndHashCode(callSuper = false)
 public class QuestionDto extends DomainObjectDto {
 
     @NotBlank
@@ -26,16 +27,4 @@ public class QuestionDto extends DomainObjectDto {
 
     @Valid
     private List<AnswerDto> answers;
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof QuestionDto that)) return false;
-        return getExerciseId() == that.getExerciseId() && Objects.equals(getText(), that.getText()) && Objects.equals(getAnswers(), that.getAnswers());
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(getText(), getExerciseId(), getAnswers());
-    }
 }
-- 
GitLab