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 17027e22aed0a598e5d780d335434b633d9f05e1..26d558db0488093cb03f6ab08bed8f5c9837614a 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 7750b307eeb3c9b98b529f75fb7c0138dd46ccae..0000000000000000000000000000000000000000 --- 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 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 768dfeff2f4bfe9f6264352d3d8aeb386cc8bb95..3aed0b7c4da523bc0e0fffa17b193b2ee663931d 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,34 +1,36 @@ 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; import java.util.List; +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<>(); @OneToMany(mappedBy = "agent") @Getter @@ -42,7 +44,28 @@ public class Agent { 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; + 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()); + } } 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 3dfc7d9158b4a64c4421dc2d3213733818a5a3c2..cc6f1b1bdc58de290c4f35e149d83614053dad3a 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,31 +4,37 @@ import lombok.Getter; import lombok.Setter; import javax.persistence.*; +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; } 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()); + } + + @Override + public int hashCode() { + 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 889d2acd104bda1f8d6ee8ea38ce6fba0d0ceda0..11e7275763a9c0a00bf6cf921bea39c1a6aebb43 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 481af0c868be5e4c1ff5aef9c1fa8f772a988cde..6002b55c07fc6aa1a9fe25eea11255da5d5384ef 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,22 +2,23 @@ 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; /** * @author Juraj Fiala */ @Entity +@Getter +@Setter +@Accessors(chain = true) public abstract class Skill { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Getter - @Setter private Long id; - @Getter - @Setter private int level; public Skill(int level) { @@ -25,4 +26,17 @@ public abstract class Skill { } public Skill() { } + + @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()); + } } 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 f6382b0b3792c3b6f8a1df90784a194baec3934c..80beaba0582d0217dd7ddb6de1bcc1a9e725fc04 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() { }