4 package com.edf.gde.dao.impl;
6 import com.edf.gde.dao.ChunkDao;
7 import com.edf.gde.entities.Chunk;
8 import com.edf.gde.entities.GDEFile;
9 import com.edf.gde.transferables.ChunkTO;
10 import javax.persistence.EntityManager;
16 public class ChunkDaoImpl implements ChunkDao {
18 private final EntityManager em;
20 public ChunkDaoImpl(EntityManager em) {
25 public ChunkTO createChunk(ChunkTO cto) {
26 Chunk c = Chunk.fromChunkTO(cto);
27 GDEFile file = em.find(GDEFile.class, cto.getFileId());
29 throw new RuntimeException("Invalid file id");
32 throw new RuntimeException("Cannot add chunk to validated file");
39 public void deleteChunk(ChunkTO cto) {
40 Chunk c = Chunk.fromChunkTO(cto);
45 public ChunkTO updateChunk(ChunkTO cto) {
46 Chunk c = Chunk.fromChunkTO(cto);
47 Chunk up = em.merge(c);
48 return up.toChunkTO();
52 public ChunkTO findChunk(ChunkTO cto) {
53 Chunk found = em.find(Chunk.class, cto.getId());
54 return found.toChunkTO();
58 public ChunkTO findById(long id) {
59 Chunk found = (Chunk) em.createNamedQuery("Chunk.findById")
60 .setParameter("id", id)
62 return found.toChunkTO();
66 public ChunkTO findByFileId(long fileId) {
67 Chunk found = (Chunk) em.createNamedQuery("Chunk.findByFileId")
68 .setParameter("fileId", fileId)
70 return found.toChunkTO();