View Javadoc

1   /**
2    * 
3    */
4   package de.tivsource.page.dao.gallery;
5   
6   import java.util.List;
7   
8   import javax.ejb.Stateless;
9   import javax.persistence.EntityManager;
10  import javax.persistence.PersistenceContext;
11  import javax.persistence.Query;
12  
13  import org.apache.logging.log4j.LogManager;
14  import org.apache.logging.log4j.Logger;
15  
16  import de.tivsource.page.entity.gallery.Gallery;
17  
18  /**
19   * @author Marc Michele
20   *
21   */
22  @Stateless
23  public class GalleryDao implements GalleryDaoLocal {
24  
25      /*
26       * Statischer Logger der Klasse.
27       */
28      private static final Logger LOGGER = LogManager.getLogger(GalleryDao.class);
29  
30      /*
31       * EntityManager der Dao Klasse.
32       */
33      @PersistenceContext
34      private EntityManager entityManager;
35  
36  	/* (non-Javadoc)
37  	 * @see de.tivsource.page.dao.gallery.GalleryDaoLocal#save(de.tivsource.page.entity.gallery.Gallery)
38  	 */
39  	@Override
40  	public void save(Gallery gallery) {
41          LOGGER.info("save(Gallery gallery) aufgerufen");
42          entityManager.persist(gallery);
43  	}
44  
45  	/* (non-Javadoc)
46  	 * @see de.tivsource.page.dao.gallery.GalleryDaoLocal#merge(de.tivsource.page.entity.gallery.Gallery)
47  	 */
48  	@Override
49  	public void merge(Gallery gallery) {
50          LOGGER.info("merge(Gallery gallery) aufgerufen");
51          entityManager.merge(gallery);
52  	}
53  
54  	/* (non-Javadoc)
55  	 * @see de.tivsource.page.dao.gallery.GalleryDaoLocal#delete(de.tivsource.page.entity.gallery.Gallery)
56  	 */
57  	@Override
58  	public void delete(Gallery gallery) {
59  		entityManager.remove(entityManager.find(Gallery.class, gallery.getUuid()));
60  	}
61  
62  	/* (non-Javadoc)
63  	 * @see de.tivsource.page.dao.gallery.GalleryDaoLocal#isGallery(java.lang.String)
64  	 */
65  	@Override
66  	public Boolean isGallery(String uuid) {
67          Query query = entityManager.createQuery("select g from Gallery g where g.uuid = :uuid and g.visible = 'Y' order by g.uuid asc");
68          query.setParameter("uuid", uuid);
69          return (query.getResultList().size() > 0 ? true : false);
70  	}
71  
72  	@Override
73  	public Boolean isGalleryTechnical(String technical) {
74          Query query = entityManager.createQuery("select g from Gallery g where g.technical = :technical and g.visible = 'Y' order by g.uuid asc");
75          query.setParameter("technical", technical);
76          return (query.getResultList().size() > 0 ? true : false);
77  	}
78  
79  	@Override
80  	public Boolean hasReferences(String uuid) {
81          Query query = entityManager.createQuery("select p from Picture p where p.gallery.uuid = :uuid order by p.uuid asc");
82          query.setParameter("uuid", uuid);
83          return (query.getResultList().size() > 0 ? true : false);
84  	}
85  
86  	/* (non-Javadoc)
87  	 * @see de.tivsource.page.dao.gallery.GalleryDaoLocal#findByUuid(java.lang.String)
88  	 */
89  	@Override
90  	public Gallery findByUuid(String uuid) {
91  		return entityManager.find(Gallery.class, uuid);
92  	}
93  
94  	@Override
95  	public Gallery findByTechnical(String technical) {
96          Query query = entityManager.createQuery("select g from Gallery g where g.technical = :technical and g.visible = 'Y' order by g.uuid asc");
97          query.setParameter("technical", technical);
98  		return (Gallery) query.getSingleResult();
99  	}
100 
101 	/* (non-Javadoc)
102 	 * @see de.tivsource.page.dao.gallery.GalleryDaoLocal#findAll(java.lang.Integer, java.lang.Integer)
103 	 */
104 	@SuppressWarnings("unchecked")
105 	@Override
106 	public List<Gallery> findAll(Integer start, Integer max) {
107         Query query = entityManager.createQuery("from Gallery g order by g.orderNumber asc");
108         query.setFirstResult(start);
109         query.setMaxResults(max);
110         return query.getResultList();
111 	}
112 
113 	/* (non-Javadoc)
114 	 * @see de.tivsource.page.dao.gallery.GalleryDaoLocal#findAll(java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String)
115 	 */
116 	@SuppressWarnings("unchecked")
117 	@Override
118 	public List<Gallery> findAll(Integer start, Integer max, String field, String order) {
119         String queryString = "SELECT DISTINCT g FROM Gallery g JOIN g.descriptionMap dm WHERE dm.language = 'DE' ORDER BY ";
120         queryString = queryString + field + " " + order;
121         Query query = entityManager.createQuery(queryString);
122         query.setFirstResult(start);
123         query.setMaxResults(max);
124         return query.getResultList();
125 	}
126 
127 	@SuppressWarnings("unchecked")
128 	@Override
129 	public List<Gallery> findAllVisible(Integer start, Integer max) {
130         Query query = entityManager.createQuery("from Gallery g where g.visible = :visible order by g.orderNumber asc");
131         query.setFirstResult(start);
132         query.setMaxResults(max);
133         query.setParameter("visible", true);
134         return query.getResultList();
135 	}
136 
137 	/* (non-Javadoc)
138 	 * @see de.tivsource.page.dao.gallery.GalleryDaoLocal#countAll()
139 	 */
140 	@Override
141 	public Integer countAll() {
142         Query query = entityManager.createQuery("Select Count(g) from Gallery g");
143         return Integer.parseInt(query.getSingleResult().toString());
144 	}
145 
146 	@Override
147 	public Integer countAllVisible() {
148         Query query = entityManager.createQuery("Select Count(g) from Gallery g where g.visible = :visible");
149         query.setParameter("visible", true);
150         return Integer.parseInt(query.getSingleResult().toString());
151 	}
152 
153 }// Ende class