From 791953195b72c9bca44e07becf5b39fed4a815c6 Mon Sep 17 00:00:00 2001 From: Smejky338 Date: Sat, 26 Mar 2022 15:20:11 +0100 Subject: [PATCH 1/7] Add entities for Report and PerfEval --- .../entity/PerformanceEvaluation.java | 40 +++++++++++++++++ .../group7/secretservice/entity/Report.java | 43 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java create mode 100644 src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java new file mode 100644 index 00000000..7d59128f --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java @@ -0,0 +1,40 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; + +import com.sun.istack.NotNull; +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.*; +import java.util.List; +import java.util.Objects; + +/** + * @author Jan Smejkal + */ +@Entity +public class Report { + @Id + @Column(name = "id", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Getter + @Setter + private Long id; + + @ManyToOne + @Getter + @Setter + private Report report; + + @Getter + @Setter + private String evaluation; + + //on a scale of 0 upto 100 + @Getter + @Setter + private int rating; + + public PerformanceEvaluation(){ + + } +} \ No newline at end of file diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java new file mode 100644 index 00000000..de54bdff --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java @@ -0,0 +1,43 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; + +import com.sun.istack.NotNull; +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.*; +import java.util.List; +import java.util.Objects; + +/** + * @author Jan Smejkal + */ +@Entity +public class Report { + @Id + @Column(name = "id", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Getter + @Setter + private Long id; + + @Getter + @Setter + private String report; + + //onetomany with PerfEval + @OneToMany + @Getter + private List performanceEvaluations = new ArrayList(); + + @ManyToOne + @Getter + private AgentAssignment agentAssignment; + + public void addPerformanceEvaluation(PerformanceEvaluation performanceEvaluation) { + performanceEvaluations.add(performanceEvaluation); + } + + public Report(){ + + } +} \ No newline at end of file -- GitLab From 9b89b3a22f507a15f934d35f9eee14914d8b86ed Mon Sep 17 00:00:00 2001 From: Smejky338 Date: Sat, 26 Mar 2022 16:30:43 +0100 Subject: [PATCH 2/7] Add Report DAO --- .../group7/secretservice/dao/ReportDao.java | 17 +++++++ .../secretservice/dao/ReportDaoImpl.java | 46 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java create mode 100644 src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java new file mode 100644 index 00000000..2862167d --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java @@ -0,0 +1,17 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; + +import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Report; +import org.springframework.data.repository.CrudRepository; + +/** + * @author Jan Smejkal + */ +public interface ReportDao extends CrudRepository { + void create(Report report); + + List findAll(); + + Report findById(long id); + + void remove(Report report); +} diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java new file mode 100644 index 00000000..6112088c --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java @@ -0,0 +1,46 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; + +import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Report; +import org.springframework.data.repository.CrudRepository; + +import java.util.List; +import org.springframework.stereotype.Repository; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + + +/** + * @author Jan Smejkal + */ +@Repository +public class ReportDaoImpl implements ReportDao { + + @PersistenceContext + private EntityManager em; + + public AgentDaoImpl(EntityManager em) { + this.em = em; + } + @Override + void create(Report report) { + em.persist(report); + } + + @Override + List findAll() { + return em.createQuery("select r from Report r", Report.class).getResultList(); + } + + @Override + Report findById(long id) { + return em.createQuery("select p from Product p where name = :name", Product.class) + .setParameter("name", name) + .getResultList(); + } + + @Override + void remove(Report report) { + em.remove(report); + } + +} \ No newline at end of file -- GitLab From 0b69f7df9fbe212f77457a71e6db2ff32222211e Mon Sep 17 00:00:00 2001 From: Smejky338 Date: Sat, 26 Mar 2022 17:39:08 +0100 Subject: [PATCH 3/7] Add plain AgentAssignment entity --- .../seminar4/group7/secretservice/entity/AgentAssignment.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java new file mode 100644 index 00000000..5753cddf --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java @@ -0,0 +1,4 @@ +package java.cz.fi.muni.pa165.seminar4.group7.secretservice.entity; + +public class AgentAssignment { +} -- GitLab From 90f435d850fad8751a3236f34df4c365ec5f7a00 Mon Sep 17 00:00:00 2001 From: Smejky338 Date: Sat, 26 Mar 2022 17:40:13 +0100 Subject: [PATCH 4/7] Add evaluation to constructor of PerfEval --- .../secretservice/entity/PerformanceEvaluation.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java index 7d59128f..9a016c1c 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java @@ -1,4 +1,5 @@ -package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; +package java.cz.fi.muni.pa165.seminar4.group7.secretservice.entity; +import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Report; import com.sun.istack.NotNull; import lombok.Getter; @@ -12,7 +13,7 @@ import java.util.Objects; * @author Jan Smejkal */ @Entity -public class Report { +public class PerformanceEvaluation { @Id @Column(name = "id", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -34,7 +35,7 @@ public class Report { @Setter private int rating; - public PerformanceEvaluation(){ - + public PerformanceEvaluation(String evaluation){ + this.evaluation = evaluation; } } \ No newline at end of file -- GitLab From 2ee1311ef08378c08e4de1057949ccdb31e84eae Mon Sep 17 00:00:00 2001 From: Smejky338 Date: Sat, 26 Mar 2022 17:41:25 +0100 Subject: [PATCH 5/7] Add report hashCode & equals based on report text --- .../group7/secretservice/entity/Report.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java index de54bdff..239d250a 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java @@ -5,6 +5,9 @@ import lombok.Getter; import lombok.Setter; import javax.persistence.*; +import java.cz.fi.muni.pa165.seminar4.group7.secretservice.entity.AgentAssignment; +import java.cz.fi.muni.pa165.seminar4.group7.secretservice.entity.PerformanceEvaluation; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -37,7 +40,32 @@ public class Report { performanceEvaluations.add(performanceEvaluation); } - public Report(){ + public Report(String report){ + this.report = report; + } + + @Override + public int hashCode() { + final int PRIME = 31; + int result = 1; + result = PRIME * result + ((report == null) ? 0 : report.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (!(obj instanceof Report)) + return false; + Report other = (Report) obj; + if (id == null) { + if (other.getReport() != null) + return false; + } else if (!report.equals(other.getReport())) + return false; + return true; } } \ No newline at end of file -- GitLab From eccbcdd950a95577e26d972eb279dc86040d1a91 Mon Sep 17 00:00:00 2001 From: Smejky338 Date: Sat, 26 Mar 2022 17:43:07 +0100 Subject: [PATCH 6/7] Remove extend from ReportDao and add missing visibility to methods --- .../group7/secretservice/dao/ReportDao.java | 7 +++++-- .../group7/secretservice/dao/ReportDaoImpl.java | 17 ++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java index 2862167d..775d2502 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java @@ -1,12 +1,15 @@ -package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; +package java.cz.fi.muni.pa165.seminar4.group7.secretservice.dao; import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Report; import org.springframework.data.repository.CrudRepository; +import java.util.List; + /** * @author Jan Smejkal */ -public interface ReportDao extends CrudRepository { +public interface ReportDao { + void create(Report report); List findAll(); diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java index 6112088c..d7d4a7de 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java @@ -1,4 +1,4 @@ -package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; +package java.cz.fi.muni.pa165.seminar4.group7.secretservice.dao; import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Report; import org.springframework.data.repository.CrudRepository; @@ -18,28 +18,27 @@ public class ReportDaoImpl implements ReportDao { @PersistenceContext private EntityManager em; - public AgentDaoImpl(EntityManager em) { + public ReportDaoImpl(EntityManager em) { this.em = em; } + @Override - void create(Report report) { + public void create(Report report) { em.persist(report); } @Override - List findAll() { + public List findAll() { return em.createQuery("select r from Report r", Report.class).getResultList(); } @Override - Report findById(long id) { - return em.createQuery("select p from Product p where name = :name", Product.class) - .setParameter("name", name) - .getResultList(); + public Report findById(long id) { + return em.find(Report.class, id); } @Override - void remove(Report report) { + public void remove(Report report) { em.remove(report); } -- GitLab From 7e15e11f75930e8a21e16b8575370c0e76878c48 Mon Sep 17 00:00:00 2001 From: tbilos Date: Sat, 26 Mar 2022 18:48:01 +0100 Subject: [PATCH 7/7] fix: packages, missing entity, constructors --- .../group7/secretservice/dao/ReportDao.java | 3 +-- .../group7/secretservice/dao/ReportDaoImpl.java | 3 +-- .../secretservice/entity/AgentAssignment.java | 2 +- .../entity/PerformanceEvaluation.java | 10 +++++----- .../group7/secretservice/entity/Report.java | 14 ++++++-------- 5 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java index 775d2502..c1914c4c 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDao.java @@ -1,7 +1,6 @@ -package java.cz.fi.muni.pa165.seminar4.group7.secretservice.dao; +package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Report; -import org.springframework.data.repository.CrudRepository; import java.util.List; diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java index d7d4a7de..f583c47c 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoImpl.java @@ -1,7 +1,6 @@ -package java.cz.fi.muni.pa165.seminar4.group7.secretservice.dao; +package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Report; -import org.springframework.data.repository.CrudRepository; import java.util.List; import org.springframework.stereotype.Repository; diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java index 5753cddf..569b6147 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java @@ -1,4 +1,4 @@ -package java.cz.fi.muni.pa165.seminar4.group7.secretservice.entity; +package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; public class AgentAssignment { } diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java index 9a016c1c..72e61ac9 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/PerformanceEvaluation.java @@ -1,13 +1,9 @@ -package java.cz.fi.muni.pa165.seminar4.group7.secretservice.entity; -import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Report; +package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; -import com.sun.istack.NotNull; import lombok.Getter; import lombok.Setter; import javax.persistence.*; -import java.util.List; -import java.util.Objects; /** * @author Jan Smejkal @@ -35,7 +31,11 @@ public class PerformanceEvaluation { @Setter private int rating; + public PerformanceEvaluation() { + } + public PerformanceEvaluation(String evaluation){ this.evaluation = evaluation; } + } \ No newline at end of file diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java index 239d250a..68beaf3a 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Report.java @@ -1,15 +1,11 @@ package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; -import com.sun.istack.NotNull; import lombok.Getter; import lombok.Setter; import javax.persistence.*; -import java.cz.fi.muni.pa165.seminar4.group7.secretservice.entity.AgentAssignment; -import java.cz.fi.muni.pa165.seminar4.group7.secretservice.entity.PerformanceEvaluation; import java.util.ArrayList; import java.util.List; -import java.util.Objects; /** * @author Jan Smejkal @@ -27,14 +23,16 @@ public class Report { @Setter private String report; - //onetomany with PerfEval @OneToMany @Getter private List performanceEvaluations = new ArrayList(); - @ManyToOne - @Getter - private AgentAssignment agentAssignment; +// @ManyToOne +// @Getter +// private AgentAssignment agentAssignment; + + public Report() { + } public void addPerformanceEvaluation(PerformanceEvaluation performanceEvaluation) { performanceEvaluations.add(performanceEvaluation); -- GitLab