Salome HOME
Improves file management
[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 com.edf.gde.transferables.FileTO;
9 import java.util.Date;
10 import javax.persistence.EntityManager;
11
12 /**
13  *
14  * @author Kavoos
15  */
16 public class FileDaoImpl implements FileDao {
17
18     private final EntityManager em;
19
20     public FileDaoImpl(EntityManager em) {
21         this.em = em;
22     }
23
24     @Override
25     public FileTO createFile(FileTO fto) {
26         GDEFile f = GDEFile.fromFileTO(fto);
27         f.setValid(false);
28         f.setDeleted(false);
29         em.persist(f);
30         return f.toFileTO();
31     }
32
33     @Override
34     public void deleteFile(FileTO fto) {
35         GDEFile f = GDEFile.fromFileTO(fto);
36         em.remove(f);
37     }
38
39     @Override
40     public FileTO updateFile(FileTO fto) {
41         GDEFile f = GDEFile.fromFileTO(fto);
42         GDEFile up = em.merge(f);
43         return up.toFileTO();
44     }
45
46     @Override
47     public FileTO findFile(FileTO fto) {
48         GDEFile found = em.find(GDEFile.class, fto.getId());
49         return found.toFileTO();
50     }
51
52     private <T> FileTO findBy(String queryName, String varName, T value) {
53         GDEFile found = (GDEFile) em.createNamedQuery(queryName)
54                 .setParameter(varName, value)
55                 .getSingleResult();
56         return found.toFileTO();
57     }
58
59     @Override
60     public FileTO findById(long id) {
61         return findBy("File.findById", "id", id);
62     }
63
64     @Override
65     public FileTO findByName(String name) {
66         return findBy("File.findByName", "name", name);
67     }
68
69     @Override
70     public FileTO findByCreationDate(Date creationDate) {
71         return findBy("File.findByCreationDate", "creationDate", creationDate);
72     }
73
74     @Override
75     public FileTO findByUpdateDate(Date updateDate) {
76         return findBy("File.findByUpdateDate", "updateDate", updateDate);
77     }
78
79     @Override
80     public FileTO findByDeletionDate(Date deletionDate) {
81         return findBy("File.findByDeletionDate", "deletionDate", deletionDate);
82     }
83
84     @Override
85     public void validate(long fileId) {
86         GDEFile file = em.find(GDEFile.class, fileId);
87         file.setValid(true);
88     }
89
90 }