From ca0ba2e34ec235845228f81282111355b2c9efe7 Mon Sep 17 00:00:00 2001 From: Juraj Fiala Date: Sat, 26 Mar 2022 23:24:37 +0100 Subject: [PATCH 1/3] Add missing equals/hashcode --- .../group7/secretservice/entity/Agent.java | 14 ++++++++++++++ .../group7/secretservice/entity/CodeName.java | 14 ++++++++++++++ .../group7/secretservice/entity/Skill.java | 14 ++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Agent.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Agent.java index 57621866..55c70218 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Agent.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Agent.java @@ -6,6 +6,7 @@ import lombok.Setter; import javax.persistence.*; import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * @author Juraj Fiala @@ -34,6 +35,19 @@ public class Agent { codeNames.add(codeName); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Agent)) return false; + Agent agent = (Agent) o; + return Objects.equals(getSkills(), agent.getSkills()) && Objects.equals(getTraining(), agent.getTraining()) && Objects.equals(getCodeNames(), agent.getCodeNames()); + } + + @Override + public int hashCode() { + return Objects.hash(getSkills(), getTraining(), getCodeNames()); + } + public void addSkill(Skill skill) { skills.add(skill); } diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/CodeName.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/CodeName.java index 3dfc7d91..16c24a62 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/CodeName.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/CodeName.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import javax.persistence.*; +import java.util.Objects; /** * @author Juraj Fiala @@ -31,4 +32,17 @@ public class CodeName { } public CodeName() { } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof CodeName)) return false; + CodeName codeName1 = (CodeName) o; + return Objects.equals(getCodeName(), codeName1.getCodeName()) && Objects.equals(getAgent(), codeName1.getAgent()); + } + + @Override + public int hashCode() { + return Objects.hash(getCodeName(), getAgent()); + } } \ No newline at end of file diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Skill.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Skill.java index 481af0c8..8c031644 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Skill.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Skill.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import javax.persistence.*; +import java.util.Objects; /** * @author Juraj Fiala @@ -16,6 +17,19 @@ public abstract class Skill { @Setter private Long id; + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Skill)) return false; + Skill skill = (Skill) o; + return getLevel() == skill.getLevel(); + } + + @Override + public int hashCode() { + return Objects.hash(getLevel()); + } + @Getter @Setter private int level; -- GitLab From 28730919c26f7af64579d6c3366c8dc086323e11 Mon Sep 17 00:00:00 2001 From: Juraj Fiala Date: Sat, 26 Mar 2022 23:25:24 +0100 Subject: [PATCH 2/3] Migrate tu CrudRepository --- .../group7/secretservice/dao/AgentDao.java | 11 +---- .../secretservice/dao/AgentDaoImpl.java | 42 ------------------- 2 files changed, 2 insertions(+), 51 deletions(-) delete mode 100644 src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/AgentDaoImpl.java diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/AgentDao.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/AgentDao.java index 17027e22..26d558db 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/AgentDao.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/AgentDao.java @@ -1,19 +1,12 @@ package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Agent; +import org.springframework.data.repository.CrudRepository; import java.util.List; /** * @author Juraj Fiala */ -public interface AgentDao { - - void create(Agent a); - - List findAll(); - - Agent findById(Long id); - - void remove(Agent a); +public interface AgentDao extends CrudRepository { } diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/AgentDaoImpl.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/AgentDaoImpl.java deleted file mode 100644 index 7750b307..00000000 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/AgentDaoImpl.java +++ /dev/null @@ -1,42 +0,0 @@ -package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; - -import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Agent; -import org.springframework.stereotype.Repository; - -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import java.util.List; - -/** - * @author Juraj Fiala - */ -@Repository -public class AgentDaoImpl implements AgentDao { - - @PersistenceContext - private EntityManager em; - - public AgentDaoImpl(EntityManager em) { - this.em = em; - } - - @Override - public void create(Agent a) { - em.persist(a); - } - - @Override - public List findAll() { - return em.createQuery("select a from Agent a", Agent.class).getResultList(); - } - - @Override - public Agent findById(Long id) { - return em.find(Agent.class, id); - } - - @Override - public void remove(Agent a) { - em.remove(a); - } -} \ No newline at end of file -- GitLab From 823f4c165b1a86153462e99a07254fe637ce9f3e Mon Sep 17 00:00:00 2001 From: Juraj Fiala Date: Sun, 27 Mar 2022 16:46:28 +0200 Subject: [PATCH 3/3] fix: Cleanup getters/setters --- .../group7/secretservice/entity/Agent.java | 33 ++++++++++++------- .../group7/secretservice/entity/CodeName.java | 18 +++------- .../secretservice/entity/LanguageSkill.java | 7 ++-- .../group7/secretservice/entity/Skill.java | 24 +++++++------- .../secretservice/entity/WeaponSkill.java | 7 ++-- 5 files changed, 46 insertions(+), 43 deletions(-) diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Agent.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Agent.java index 55c70218..e12bb31d 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Agent.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Agent.java @@ -1,7 +1,9 @@ package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; +import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; +import lombok.experimental.Accessors; import javax.persistence.*; import java.util.ArrayList; @@ -12,29 +14,40 @@ import java.util.Objects; * @author Juraj Fiala */ @Entity +@Getter +@Setter +@Accessors(chain = true) public class Agent { @Id - @Getter - @Setter @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToMany - @Getter + @Setter(AccessLevel.NONE) private List skills = new ArrayList<>(); - @Getter - @Setter - private String training; + private String training = ""; @OneToMany - @Getter - private List codeNames; + @Setter(AccessLevel.NONE) + private List codeNames = new ArrayList<>(); public void addCodeName(CodeName codeName) { codeNames.add(codeName); } + public void removeCodeName(CodeName codeName) { + codeNames.remove(codeName); + } + + public void addSkill(Skill skill) { + skills.add(skill); + } + + public void removeSkill(Skill skill) { + skills.remove(skill); + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -47,8 +60,4 @@ public class Agent { public int hashCode() { return Objects.hash(getSkills(), getTraining(), getCodeNames()); } - - public void addSkill(Skill skill) { - skills.add(skill); - } } diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/CodeName.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/CodeName.java index 16c24a62..cc6f1b1b 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/CodeName.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/CodeName.java @@ -10,24 +10,16 @@ import java.util.Objects; * @author Juraj Fiala */ @Entity +@Getter +@Setter public class CodeName { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Getter - @Setter private Long id; - @Getter - @Setter private String codeName = ""; - @ManyToOne - @Getter - @Setter - private Agent agent; - - public CodeName(Agent agent, String codeName) { - this.agent = agent; + public CodeName(String codeName) { this.codeName = codeName; } @@ -38,11 +30,11 @@ public class CodeName { if (this == o) return true; if (!(o instanceof CodeName)) return false; CodeName codeName1 = (CodeName) o; - return Objects.equals(getCodeName(), codeName1.getCodeName()) && Objects.equals(getAgent(), codeName1.getAgent()); + return Objects.equals(getCodeName(), codeName1.getCodeName()); } @Override public int hashCode() { - return Objects.hash(getCodeName(), getAgent()); + return Objects.hash(getCodeName()); } } \ No newline at end of file diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/LanguageSkill.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/LanguageSkill.java index 889d2acd..11e72757 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/LanguageSkill.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/LanguageSkill.java @@ -3,6 +3,7 @@ package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; import cz.fi.muni.pa165.seminar4.group7.secretservice.enums.LanguageCode; import lombok.Getter; import lombok.Setter; +import lombok.experimental.Accessors; import javax.persistence.Entity; @@ -10,10 +11,10 @@ import javax.persistence.Entity; * @author Juraj Fiala */ @Entity +@Getter +@Setter +@Accessors(chain = true) public class LanguageSkill extends Skill { - - @Getter - @Setter private LanguageCode languageCode; public LanguageSkill(int level, LanguageCode languageCode) { diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Skill.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Skill.java index 8c031644..6002b55c 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Skill.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Skill.java @@ -2,6 +2,7 @@ package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; import lombok.Getter; import lombok.Setter; +import lombok.experimental.Accessors; import javax.persistence.*; import java.util.Objects; @@ -10,13 +11,22 @@ import java.util.Objects; * @author Juraj Fiala */ @Entity +@Getter +@Setter +@Accessors(chain = true) public abstract class Skill { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Getter - @Setter private Long id; + private int level; + + public Skill(int level) { + this.level = level; + } + + public Skill() { } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -29,14 +39,4 @@ public abstract class Skill { public int hashCode() { return Objects.hash(getLevel()); } - - @Getter - @Setter - private int level; - - public Skill(int level) { - this.level = level; - } - - public Skill() { } } diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/WeaponSkill.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/WeaponSkill.java index f6382b0b..80beaba0 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/WeaponSkill.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/WeaponSkill.java @@ -3,6 +3,7 @@ package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; import cz.fi.muni.pa165.seminar4.group7.secretservice.enums.WeaponCategory; import lombok.Getter; import lombok.Setter; +import lombok.experimental.Accessors; import javax.persistence.Entity; @@ -10,10 +11,10 @@ import javax.persistence.Entity; * @author Juraj Fiala */ @Entity +@Getter +@Setter +@Accessors(chain = true) public class WeaponSkill extends Skill { - - @Getter - @Setter private WeaponCategory weaponCategory; public WeaponSkill() { } -- GitLab