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 4dc4fadbb2b9ed85be6867d3d8da5b75be4a30ae..cfd36d0e767f35be14f300ccdc7a8271e7e4168e 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 39ada1bb042d4d75ceaa9676dd27856bafd5c9d2..8876317a2fd58b1b694d1419fe1bd08ef05038f5 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 9cdda6ab0b16c768c5387b4a287fecaa8bc20536..9e2726fa344d637a442acc47e09796b968e9de85 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 0cbfd03a19236724aa7eb60f208c5c01a21e7405..9e982d20b606207aa7f6facb4e40c00d9512fb0f 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 20bfbe4388ec4e5693b27fd086eb35c371a69113..d5058f44c7d7f0c6eb2a97e6cd462f333b445799 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 2d0629721933f1107266a388cc42abab84e2678c..050f88cb238e07177d17a20ef8cad18413f09a8d 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() {