From 21792f208f8d8d2d7c94e4a35335c8db15062977 Mon Sep 17 00:00:00 2001 From: Michal Badin <xbadin@fi.muni.cz> Date: Wed, 3 May 2023 08:56:28 +0200 Subject: [PATCH] refactoring(DomainObject): Generalized DomainObject --- core/src/main/java/cz/muni/pa165/data/model/Car.java | 2 +- .../java/cz/muni/pa165/data/model/CarComponent.java | 2 +- .../main/java/cz/muni/pa165/data/model/Department.java | 2 +- .../java/cz/muni/pa165/data/model/DomainObject.java | 10 ++++++---- .../src/main/java/cz/muni/pa165/data/model/Driver.java | 2 +- .../main/java/cz/muni/pa165/data/model/Engineer.java | 2 +- 6 files changed, 11 insertions(+), 9 deletions(-) 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 cfd36d0..26bd28b 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 @@ -11,7 +11,7 @@ import java.util.Set; @Entity @Table(name = "car") -public class Car extends DomainObject implements Serializable { +public class Car extends DomainObject<Long> implements Serializable { @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "driver_id") @Nullable 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 f5641c0..866127d 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 @@ -12,7 +12,7 @@ import java.util.Objects; @Entity @Table(name = "car_component") -public class CarComponent extends DomainObject implements Serializable { +public class CarComponent extends DomainObject<Long> implements Serializable { @Column(name = "component_type") @Enumerated(EnumType.STRING) 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 ca27780..8d4ce31 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 @@ -10,7 +10,7 @@ import java.util.Set; @Entity @Table(name = "department") -public class Department extends DomainObject implements Serializable { +public class Department extends DomainObject<Long> implements Serializable { @NotEmpty private String specialization; 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 1fa1259..7071f57 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 @@ -6,20 +6,22 @@ import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.MappedSuperclass; +import java.io.Serializable; + /** * @author Michal Badin */ @MappedSuperclass -public abstract class DomainObject { +public abstract class DomainObject<PK extends Serializable> implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + private PK id; - public Long getId() { + public PK getId() { return id; } - public void setId(Long id) { + public void setId(PK id) { this.id = id; } } 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 efa7bad..6d401bf 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 @@ -16,7 +16,7 @@ import java.util.Set; @Entity @Table(name = "driver") -public class Driver extends DomainObject implements Serializable { +public class Driver extends DomainObject<Long> implements Serializable { @NotEmpty private String name; 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 7fa3623..ca2551e 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 @@ -9,7 +9,7 @@ import java.util.Objects; @Entity @Table(name = "engineer") -public class Engineer extends DomainObject implements Serializable { +public class Engineer extends DomainObject<Long> implements Serializable { @NotEmpty private String name; -- GitLab