From 41a54a2e8b76ced99e34f40c5c52286347aa974a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=C5=BEbeta=20Hajn=C3=A1?= <xhajna@fi.muni.cz> Date: Sun, 16 Apr 2023 16:36:21 +0200 Subject: [PATCH] feat(core): validaion annotations for Nonull and Nullable --- core/src/main/java/cz/muni/pa165/data/model/Car.java | 4 ++++ .../java/cz/muni/pa165/data/model/CarComponent.java | 6 ++++++ .../main/java/cz/muni/pa165/data/model/Department.java | 5 +++++ .../java/cz/muni/pa165/data/model/DomainObject.java | 2 ++ .../src/main/java/cz/muni/pa165/data/model/Driver.java | 10 ++++++++++ .../main/java/cz/muni/pa165/data/model/Engineer.java | 6 ++++++ 6 files changed, 33 insertions(+) diff --git a/core/src/main/java/cz/muni/pa165/data/model/Car.java b/core/src/main/java/cz/muni/pa165/data/model/Car.java index 4dc4fad..cfd36d0 100644 --- a/core/src/main/java/cz/muni/pa165/data/model/Car.java +++ b/core/src/main/java/cz/muni/pa165/data/model/Car.java @@ -1,5 +1,7 @@ package cz.muni.pa165.data.model; +import jakarta.annotation.Nonnull; +import jakarta.annotation.Nullable; import jakarta.persistence.*; import java.io.Serializable; @@ -12,11 +14,13 @@ import java.util.Set; public class Car extends DomainObject implements Serializable { @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "driver_id") + @Nullable private Driver driver; @OneToMany(fetch = FetchType.LAZY, mappedBy = "car", cascade = {CascadeType.REMOVE, CascadeType.PERSIST, CascadeType.MERGE}) + @Nonnull private Set<CarComponent> components; public Car() { diff --git a/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java b/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java index 39ada1b..8876317 100644 --- a/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java +++ b/core/src/main/java/cz/muni/pa165/data/model/CarComponent.java @@ -1,6 +1,8 @@ package cz.muni.pa165.data.model; import cz.muni.pa165.data.enums.ComponentTypeEnum; +import jakarta.annotation.Nonnull; +import jakarta.annotation.Nullable; import jakarta.persistence.*; import java.io.Serializable; @@ -12,14 +14,18 @@ public class CarComponent extends DomainObject implements Serializable { @Column(name = "component_type") @Enumerated(EnumType.STRING) + @Nonnull private ComponentTypeEnum componentType; + @Nonnull private Double weight; + @Nonnull private String information; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "car_id") + @Nullable private Car car; public CarComponent() { diff --git a/core/src/main/java/cz/muni/pa165/data/model/Department.java b/core/src/main/java/cz/muni/pa165/data/model/Department.java index 9cdda6a..9e2726f 100644 --- a/core/src/main/java/cz/muni/pa165/data/model/Department.java +++ b/core/src/main/java/cz/muni/pa165/data/model/Department.java @@ -1,5 +1,7 @@ package cz.muni.pa165.data.model; +import jakarta.annotation.Nonnull; +import jakarta.annotation.Nullable; import jakarta.persistence.*; import java.io.Serializable; @@ -9,11 +11,14 @@ import java.util.Set; @Entity @Table(name = "department") public class Department extends DomainObject implements Serializable { + + @Nonnull private String specialization; @OneToMany(fetch = FetchType.LAZY, mappedBy = "department", cascade = {CascadeType.REMOVE, CascadeType.PERSIST, CascadeType.MERGE}) + @Nullable private Set<Engineer> engineers; public Department() { diff --git a/core/src/main/java/cz/muni/pa165/data/model/DomainObject.java b/core/src/main/java/cz/muni/pa165/data/model/DomainObject.java index 0cbfd03..9e982d2 100644 --- a/core/src/main/java/cz/muni/pa165/data/model/DomainObject.java +++ b/core/src/main/java/cz/muni/pa165/data/model/DomainObject.java @@ -1,5 +1,6 @@ package cz.muni.pa165.data.model; +import jakarta.annotation.Nonnull; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; @@ -12,6 +13,7 @@ import jakarta.persistence.MappedSuperclass; public abstract class DomainObject { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + @Nonnull private Long id; public Long getId() { diff --git a/core/src/main/java/cz/muni/pa165/data/model/Driver.java b/core/src/main/java/cz/muni/pa165/data/model/Driver.java index 20bfbe4..d5058f4 100644 --- a/core/src/main/java/cz/muni/pa165/data/model/Driver.java +++ b/core/src/main/java/cz/muni/pa165/data/model/Driver.java @@ -1,6 +1,8 @@ package cz.muni.pa165.data.model; import cz.muni.pa165.data.enums.CharacteristicsEnum; +import jakarta.annotation.Nonnull; +import jakarta.annotation.Nullable; import jakarta.persistence.*; import java.io.Serializable; @@ -12,24 +14,32 @@ import java.util.Set; @Table(name = "driver") public class Driver extends DomainObject implements Serializable { + @Nonnull private String name; + @Nonnull private String surname; + @Nullable private Integer height; + @Nullable private LocalDate birthday; + @Nonnull private String nationality; + @ElementCollection(targetClass = CharacteristicsEnum.class) @CollectionTable(name = "driver_characteristics", joinColumns = @JoinColumn(name = "driver_id", nullable = false)) @Column(name = "characteristic") @Enumerated(EnumType.STRING) + @Nonnull private Set<CharacteristicsEnum> characteristics; @OneToOne(fetch = FetchType.LAZY, mappedBy = "driver", cascade = {CascadeType.REMOVE, CascadeType.PERSIST, CascadeType.MERGE}) + @Nullable private Car car; public Driver() { diff --git a/core/src/main/java/cz/muni/pa165/data/model/Engineer.java b/core/src/main/java/cz/muni/pa165/data/model/Engineer.java index 2d06297..050f88c 100644 --- a/core/src/main/java/cz/muni/pa165/data/model/Engineer.java +++ b/core/src/main/java/cz/muni/pa165/data/model/Engineer.java @@ -1,5 +1,7 @@ package cz.muni.pa165.data.model; +import jakarta.annotation.Nonnull; +import jakarta.annotation.Nullable; import jakarta.persistence.*; import java.io.Serializable; @@ -8,12 +10,16 @@ import java.util.Objects; @Entity @Table(name = "engineer") public class Engineer extends DomainObject implements Serializable { + + @Nonnull private String name; + @Nonnull private String surname; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "department_id") + @Nullable private Department department; public Engineer() { -- GitLab