Salome HOME
Add study
[modules/gde.git] / projects / GDE_App / GDE-ejb / src / java / com / edf / gde / ejb / StudyDAO.java
index dec6c1533b9ad4bb92ba5c20459c6ad2a88f3f2e..4dacf5f89040bd629ce5e9b1bf5da56a83367c82 100644 (file)
@@ -5,6 +5,9 @@
  */
 package com.edf.gde.ejb;
 
+import com.edf.gde.entities.Study;
+import com.edf.gde.transferables.StudyTO;
+import java.util.Date;
 import javax.ejb.Stateless;
 import javax.ejb.LocalBean;
 import javax.persistence.EntityManager;
@@ -20,4 +23,58 @@ public class StudyDAO {
     @PersistenceContext(unitName = "GDE-ejbPU")
     private EntityManager em;
     
+    public StudyTO createStudy(StudyTO sto) {
+        Study s = Study.fromStudyTO(sto);
+        em.persist(s);
+        return s.toStudyTO();
+    }
+
+    public void deleteStudy(StudyTO sto) {
+        Study s = Study.fromStudyTO(sto);
+        em.remove(s);
+    }
+    public StudyTO updateStudy(StudyTO sto) {
+        Study s = Study.fromStudyTO(sto);
+        Study up = em.merge(s);
+        return up.toStudyTO();
+    }
+    
+    public StudyTO findStudy(StudyTO sto) {
+        Study found = em.find(Study.class, sto.getId());
+        return found.toStudyTO();
+    }
+    
+    private <T> StudyTO findBy(String queryName, String varName, T value) {
+        try {
+            Study found = (Study) em.createNamedQuery(queryName)
+                                    .setParameter(varName, value)
+                                    .getSingleResult();
+            return found.toStudyTO();
+        }
+        catch (Exception e) {
+            return null;
+        }
+    }
+    
+    public StudyTO findById(long id) {
+        return findBy("Study.findById", "id", id);
+    }
+    
+    public StudyTO findByName(String name) {
+        return findBy("Study.findByName", "name", name);
+    }
+    
+    public StudyTO findByCreationDate(Date creationDate) {
+        return findBy("Study.findByCreationDate", "creationDate", creationDate);
+    }
+    
+    public StudyTO findByUpdateDate(Date updateDate) {
+        return findBy("Study.findByUpdateDate", "updateDate", updateDate);
+    }
+    
+    public StudyTO findByDeletionDate(Date deletionDate) {
+        return findBy("Study.findByDeletionDate", "deletionDate", deletionDate);
+    }
+    
 }