]> SALOME platform Git repositories - modules/gde.git/blob - projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/StudyDao.java
Salome HOME
Working on edj->dao separation
[modules/gde.git] / projects / GDE_App / GDE-ejb / src / java / com / edf / gde / dao / StudyDao.java
1 /*
2  * (C) 2015 EDF
3  */
4 package com.edf.gde.dao;
5
6 import com.edf.gde.entities.Study;
7 import com.edf.gde.transferables.StudyTO;
8 import java.util.Date;
9 import javax.persistence.EntityManager;
10
11 /**
12  *
13  * @author Kavoos
14  */
15 public class StudyDao {
16     private final EntityManager em;
17
18     public StudyDao(EntityManager em) {
19         this.em = em;
20     }
21     
22     public StudyTO createStudy(StudyTO sto) {
23         Study s = Study.fromStudyTO(sto);
24         em.persist(s);
25         return s.toStudyTO();
26     }
27
28     public void deleteStudy(StudyTO sto) {
29         Study s = Study.fromStudyTO(sto);
30         em.remove(s);
31     }
32  
33     public StudyTO updateStudy(StudyTO sto) {
34         Study s = Study.fromStudyTO(sto);
35         Study up = em.merge(s);
36         return up.toStudyTO();
37     }
38     
39     public StudyTO findStudy(StudyTO sto) {
40         Study found = em.find(Study.class, sto.getId());
41         return found.toStudyTO();
42     }
43     
44     private <T> StudyTO findBy(String queryName, String varName, T value) {
45         try {
46             Study found = (Study) em.createNamedQuery(queryName)
47                                     .setParameter(varName, value)
48                                     .getSingleResult();
49             return found.toStudyTO();
50         }
51         catch (Exception e) {
52             return null;
53         }
54     }
55     
56     public StudyTO findById(long id) {
57         return findBy("Study.findById", "id", id);
58     }
59     
60     public StudyTO findByName(String name) {
61         return findBy("Study.findByName", "name", name);
62     }
63     
64     public StudyTO findByCreationDate(Date creationDate) {
65         return findBy("Study.findByCreationDate", "creationDate", creationDate);
66     }
67     
68     public StudyTO findByUpdateDate(Date updateDate) {
69         return findBy("Study.findByUpdateDate", "updateDate", updateDate);
70     }
71     
72     public StudyTO findByDeletionDate(Date deletionDate) {
73         return findBy("Study.findByDeletionDate", "deletionDate", deletionDate);
74     }
75     
76 }