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 new file mode 100644 index 0000000000000000000000000000000000000000..17027e22aed0a598e5d780d335434b633d9f05e1 --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/AgentDao.java @@ -0,0 +1,19 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; + +import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Agent; + +import java.util.List; + +/** + * @author Juraj Fiala + */ +public interface AgentDao { + + void create(Agent a); + + List findAll(); + + Agent findById(Long id); + + void remove(Agent a); +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..7750b307eeb3c9b98b529f75fb7c0138dd46ccae --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/AgentDaoImpl.java @@ -0,0 +1,42 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..57621866909c0b5e8fdd8d08074831b9e5ff9be7 --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Agent.java @@ -0,0 +1,40 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +/** + * @author Juraj Fiala + */ +@Entity +public class Agent { + @Id + @Getter + @Setter + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @OneToMany + @Getter + private List skills = new ArrayList<>(); + + @Getter + @Setter + private String training; + + @OneToMany + @Getter + private List codeNames; + + public void addCodeName(CodeName codeName) { + codeNames.add(codeName); + } + + 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 new file mode 100644 index 0000000000000000000000000000000000000000..3dfc7d9158b4a64c4421dc2d3213733818a5a3c2 --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/CodeName.java @@ -0,0 +1,34 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.*; + +/** + * @author Juraj Fiala + */ +@Entity +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; + this.codeName = codeName; + } + + public CodeName() { } +} \ 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 new file mode 100644 index 0000000000000000000000000000000000000000..889d2acd104bda1f8d6ee8ea38ce6fba0d0ceda0 --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/LanguageSkill.java @@ -0,0 +1,25 @@ +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 javax.persistence.Entity; + +/** + * @author Juraj Fiala + */ +@Entity +public class LanguageSkill extends Skill { + + @Getter + @Setter + private LanguageCode languageCode; + + public LanguageSkill(int level, LanguageCode languageCode) { + super(level); + this.languageCode = languageCode; + } + + public LanguageSkill() { } +} 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 72e61ac90d1cc166776840550daf7f0e593e537c..7865e33bbfa0461ca33c192868ae6dc7ceb052aa 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 @@ -26,7 +26,6 @@ public class PerformanceEvaluation { @Setter private String evaluation; - //on a scale of 0 upto 100 @Getter @Setter private int rating; 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 new file mode 100644 index 0000000000000000000000000000000000000000..481af0c868be5e4c1ff5aef9c1fa8f772a988cde --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/Skill.java @@ -0,0 +1,28 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.entity; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.*; + +/** + * @author Juraj Fiala + */ +@Entity +public abstract class Skill { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Getter + @Setter + private Long id; + + @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 new file mode 100644 index 0000000000000000000000000000000000000000..f6382b0b3792c3b6f8a1df90784a194baec3934c --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/WeaponSkill.java @@ -0,0 +1,25 @@ +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 javax.persistence.Entity; + +/** + * @author Juraj Fiala + */ +@Entity +public class WeaponSkill extends Skill { + + @Getter + @Setter + private WeaponCategory weaponCategory; + + public WeaponSkill() { } + + public WeaponSkill(int level, WeaponCategory weaponCategory) { + super(level); + this.weaponCategory = weaponCategory; + } +} diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/enums/LanguageCode.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/enums/LanguageCode.java new file mode 100644 index 0000000000000000000000000000000000000000..1b341c1985af2ac92bc592ebb26b9fceeccae7eb --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/enums/LanguageCode.java @@ -0,0 +1,7 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.enums; + +public enum LanguageCode { + en_US, + cs_CZ, + sk_SK, +} diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/enums/WeaponCategory.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/enums/WeaponCategory.java new file mode 100644 index 0000000000000000000000000000000000000000..127ee15d2a339cd8e933052cbe5ca097f8adcf35 --- /dev/null +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/enums/WeaponCategory.java @@ -0,0 +1,8 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.enums; + +public enum WeaponCategory { + KNIVES, + RIFLES, + POISONS, + EXPLOSIVES, +}