Salome HOME
Fixe FileDaoImpl
[modules/gde.git] / projects / GDE_App / GDE-ejb / src / java / com / edf / gde / dao / impl / FileDaoImpl.java
1 /*
2  * (C) 2015 EDF
3  */
4 package com.edf.gde.dao.impl;
5
6 import com.edf.gde.dao.FileDao;
7 import com.edf.gde.entities.GDEFile;
8 import java.util.Date;
9 import javax.persistence.EntityManager;
10
11 /**
12  *
13  * @author Kavoos
14  */
15 public class FileDaoImpl implements FileDao {
16
17     private final EntityManager em;
18
19     public FileDaoImpl(EntityManager em) {
20         this.em = em;
21     }
22
23     @Override
24     public GDEFile createFile(GDEFile file) {
25         Date date = new Date();
26         file.setValid(false);
27         file.setDeleted(false);
28         file.setCreationDate(date);
29         file.setUpdateDate(date);
30         em.persist(file);
31         return file;
32     }
33
34     @Override
35     public void deleteFile(long id) {
36         GDEFile file = em.find(GDEFile.class, id);
37         em.remove(file);
38     }
39
40     @Override
41     public GDEFile updateFile(GDEFile file) {
42         GDEFile up = em.merge(file);
43         file.setUpdateDate(new Date());
44         return up;
45     }
46
47     private <T> GDEFile findBy(String queryName, String varName, T value) {
48         GDEFile found = (GDEFile) em.createNamedQuery(queryName)
49                 .setParameter(varName, value)
50                 .getSingleResult();
51         return found;
52     }
53
54     @Override
55     public GDEFile findById(long id) {
56         return findBy("File.findById", "id", id);
57     }
58
59     @Override
60     public GDEFile findByName(String name) {
61         return findBy("File.findByName", "name", name);
62     }
63
64     @Override
65     public GDEFile findByCreationDate(Date creationDate) {
66         return findBy("File.findByCreationDate", "creationDate", creationDate);
67     }
68
69     @Override
70     public GDEFile findByUpdateDate(Date updateDate) {
71         return findBy("File.findByUpdateDate", "updateDate", updateDate);
72     }
73
74     @Override
75     public GDEFile findByDeletionDate(Date deletionDate) {
76         return findBy("File.findByDeletionDate", "deletionDate", deletionDate);
77     }
78
79     @Override
80     public void validate(long fileId) {
81         GDEFile file = em.find(GDEFile.class, fileId);
82         file.setValid(true);
83     }
84
85     
86 }