From 9f525b5cd28aeef3de3b6c39185238b0f6cc184a Mon Sep 17 00:00:00 2001 From: Maxime <mpakula@takima.fr> Date: Thu, 10 Oct 2024 16:10:14 +0200 Subject: [PATCH] Removed Lombok --- back-skeleton/pom.xml | 7 -- .../takima/backskeleton/DTO/StudentDto.java | 76 +++++++++++++++++-- .../backskeleton/DTO/StudentMapper.java | 2 +- .../controllers/CourseController.java | 6 +- .../controllers/MajorController.java | 12 ++- .../controllers/StudentController.java | 18 ++++- .../takima/backskeleton/models/Course.java | 30 ++++++-- .../com/takima/backskeleton/models/Major.java | 29 +++++-- .../takima/backskeleton/models/Student.java | 38 +++++++++- .../backskeleton/services/CourseService.java | 8 +- .../backskeleton/services/MajorService.java | 7 +- .../backskeleton/services/StudentService.java | 7 +- 12 files changed, 195 insertions(+), 45 deletions(-) diff --git a/back-skeleton/pom.xml b/back-skeleton/pom.xml index c868e94..25449a5 100644 --- a/back-skeleton/pom.xml +++ b/back-skeleton/pom.xml @@ -15,7 +15,6 @@ <description>Skeleton of an API project</description> <properties> <java.version>17</java.version> - <lombok.version>1.18.34</lombok.version> <springdoc.version>2.2.0</springdoc.version> </properties> <dependencies> @@ -38,12 +37,6 @@ <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>${lombok.version}</version> - <scope>provided</scope> - </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentDto.java b/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentDto.java index f0a938e..1c5c92b 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentDto.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentDto.java @@ -2,19 +2,83 @@ package com.takima.backskeleton.DTO; import com.takima.backskeleton.models.Course; import com.takima.backskeleton.models.Major; -import com.takima.backskeleton.models.Student; -import lombok.Builder; -import lombok.Getter; -import org.springframework.web.multipart.MultipartFile; import java.time.Instant; import java.util.List; -@Builder -@Getter public class StudentDto { private String firstName; private String lastName; private Instant birthdate; private List<Course> courses; private Major major; + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public Instant getBirthdate() { + return birthdate; + } + + public List<Course> getCourses() { + return courses; + } + + public Major getMajor() { + return major; + } + + public static final class StudentDtoBuilder { + private String firstName; + private String lastName; + private Instant birthdate; + private List<Course> courses; + private Major major; + + public StudentDtoBuilder() { + } + + public static StudentDtoBuilder aStudentDto() { + return new StudentDtoBuilder(); + } + + public StudentDtoBuilder firstName(String firstName) { + this.firstName = firstName; + return this; + } + + public StudentDtoBuilder lastName(String lastName) { + this.lastName = lastName; + return this; + } + + public StudentDtoBuilder birthdate(Instant birthdate) { + this.birthdate = birthdate; + return this; + } + + public StudentDtoBuilder courses(List<Course> courses) { + this.courses = courses; + return this; + } + + public StudentDtoBuilder major(Major major) { + this.major = major; + return this; + } + + public StudentDto build() { + StudentDto studentDto = new StudentDto(); + studentDto.lastName = this.lastName; + studentDto.major = this.major; + studentDto.firstName = this.firstName; + studentDto.birthdate = this.birthdate; + studentDto.courses = this.courses; + return studentDto; + } + } } diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentMapper.java b/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentMapper.java index 17a583b..23dc203 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentMapper.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/DTO/StudentMapper.java @@ -17,7 +17,7 @@ public class StudentMapper { } public static StudentDto toDto (Student student){ - return StudentDto.builder() + return new StudentDto.StudentDtoBuilder() .firstName(student.getFirstName()) .lastName(student.getLastName()) .birthdate(student.getBirthdate()) diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/CourseController.java b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/CourseController.java index b7425bf..f59acc3 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/CourseController.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/CourseController.java @@ -2,7 +2,6 @@ package com.takima.backskeleton.controllers; import com.takima.backskeleton.models.Course; import com.takima.backskeleton.services.CourseService; -import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -13,10 +12,13 @@ import java.util.List; @CrossOrigin @RequestMapping("courses") @RestController -@RequiredArgsConstructor public class CourseController { private final CourseService courseService; + public CourseController(CourseService courseService) { + this.courseService = courseService; + } + @GetMapping("") public List<Course> getAllCourses() { return courseService.findAll(); diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java index b531543..67d121d 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/MajorController.java @@ -3,18 +3,24 @@ package com.takima.backskeleton.controllers; import com.takima.backskeleton.models.Major; import com.takima.backskeleton.models.Student; import com.takima.backskeleton.services.MajorService; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.List; @CrossOrigin @RequestMapping("majors") @RestController -@RequiredArgsConstructor public class MajorController { private final MajorService majorService; + public MajorController(MajorService majorService) { + this.majorService = majorService; + } + @GetMapping("") public List<Major> findAll() { return majorService.findAll(); diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java index 4508fa5..d12708e 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/controllers/StudentController.java @@ -3,18 +3,28 @@ package com.takima.backskeleton.controllers; import com.takima.backskeleton.DTO.StudentDto; import com.takima.backskeleton.models.Student; import com.takima.backskeleton.services.StudentService; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import java.util.List; @CrossOrigin @RequestMapping("students") @RestController -@RequiredArgsConstructor public class StudentController { private final StudentService studentService; + + public StudentController(StudentService studentService) { + this.studentService = studentService; + } + @GetMapping("") public List<Student> listStudents(@RequestParam(required = false) Integer majorId, @RequestParam(required = false) Integer courseId) { if (majorId != null && courseId !=null) { diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java index bf8cd46..242e968 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Course.java @@ -1,16 +1,17 @@ package com.takima.backskeleton.models; import com.fasterxml.jackson.annotation.JsonIgnore; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.NoArgsConstructor; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.Table; import java.util.List; @Entity @Table(name = "courses") -@NoArgsConstructor -@Getter public class Course { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -20,4 +21,23 @@ public class Course { @ManyToMany(mappedBy = "courses") @JsonIgnore List<Student> students; + + public Course() { + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public Integer getHours() { + return hours; + } + + public List<Student> getStudents() { + return students; + } } diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java index 4746c4c..d42153d 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Major.java @@ -1,16 +1,17 @@ package com.takima.backskeleton.models; import com.fasterxml.jackson.annotation.JsonIgnore; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.NoArgsConstructor; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import java.util.List; @Entity @Table(name = "majors") -@Getter -@NoArgsConstructor public class Major { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -21,5 +22,23 @@ public class Major { @JsonIgnore private List<Student> students; + public Major() { + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public List<Student> getStudents() { + return students; + } } diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java b/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java index 59e05c0..3b16f32 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/models/Student.java @@ -1,14 +1,22 @@ package com.takima.backskeleton.models; -import jakarta.persistence.*; -import lombok.Getter; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import java.time.Instant; import java.util.List; @Entity @Table(name = "students") -@Getter public class Student { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -39,6 +47,30 @@ public class Student { public Student() { } + public Long getId() { + return id; + } + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public Instant getBirthdate() { + return birthdate; + } + + public List<Course> getCourses() { + return courses; + } + + public Major getMajor() { + return major; + } + public static class Builder { private Long id; private String firstName; diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java b/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java index 68a553c..91374e3 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/services/CourseService.java @@ -2,18 +2,18 @@ package com.takima.backskeleton.services; import com.takima.backskeleton.DAO.CourseDao; import com.takima.backskeleton.models.Course; -import com.takima.backskeleton.models.Major; -import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; -import java.util.ArrayList; import java.util.List; @Component -@RequiredArgsConstructor public class CourseService { private final CourseDao courseDao; + public CourseService(CourseDao courseDao) { + this.courseDao = courseDao; + } + public List<Course> findAll() { return courseDao.findAll(); } diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java b/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java index 03feb0f..c2a9214 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/services/MajorService.java @@ -3,16 +3,19 @@ package com.takima.backskeleton.services; import com.takima.backskeleton.DAO.MajorDao; import com.takima.backskeleton.models.Major; import com.takima.backskeleton.models.Student; -import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; @Component -@RequiredArgsConstructor public class MajorService { private final MajorDao majorDao; + + public MajorService(MajorDao majorDao) { + this.majorDao = majorDao; + } + public List<Major> findAll() { Iterable<Major> it = majorDao.findAll(); List <Major> majors = new ArrayList<>(); diff --git a/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java b/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java index cc1e205..be60038 100644 --- a/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java +++ b/back-skeleton/src/main/java/com/takima/backskeleton/services/StudentService.java @@ -4,8 +4,6 @@ import com.takima.backskeleton.DAO.StudentDao; import com.takima.backskeleton.DTO.StudentDto; import com.takima.backskeleton.DTO.StudentMapper; import com.takima.backskeleton.models.Student; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -15,10 +13,13 @@ import java.util.List; import java.util.NoSuchElementException; @Service -@RequiredArgsConstructor public class StudentService { private final StudentDao studentDao; + public StudentService(StudentDao studentDao) { + this.studentDao = studentDao; + } + public List<Student> findAll() { Iterable<Student> it = studentDao.findAll(); List <Student> users = new ArrayList<>(); -- GitLab