View Javadoc

1   /**
2    * 
3    */
4   package de.tivsource.page.dao.picture;
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.picture.Picture;
17  import de.tivsource.page.entity.picture.PictureUrl;
18  
19  /**
20   * @author Marc Michele
21   *
22   */
23  @Stateless
24  public class PictureDao implements PictureDaoLocal {
25  
26      /*
27       * Statischer Logger der Klasse.
28       */
29      private static final Logger LOGGER = LogManager.getLogger(PictureDao.class);
30  
31      /*
32       * EntityManager der Dao Klasse.
33       */
34      @PersistenceContext
35      private EntityManager entityManager;
36  
37  	/* (non-Javadoc)
38  	 * @see de.tivsource.page.dao.picture.PictureDaoLocal#save(de.tivsource.page.entity.picture.Picture)
39  	 */
40  	@Override
41  	public void save(Picture picture) {
42          LOGGER.info("save(Picture picture) aufgerufen");
43          entityManager.persist(picture);
44  	}
45  
46  	/* (non-Javadoc)
47  	 * @see de.tivsource.page.dao.picture.PictureDaoLocal#merge(de.tivsource.page.entity.picture.Picture)
48  	 */
49  	@Override
50  	public void merge(Picture picture) {
51          LOGGER.info("merge(Picture picture) aufgerufen");
52          entityManager.merge(picture);
53  	}
54  
55  	/* (non-Javadoc)
56  	 * @see de.tivsource.page.dao.picture.PictureDaoLocal#delete(de.tivsource.page.entity.picture.Picture)
57  	 */
58  	@Override
59  	public void delete(Picture picture) {
60  		// Lösche das Bild aus der Datenbank
61  		entityManager.remove(entityManager.find(Picture.class, picture.getUuid()));
62  	}
63  
64      @Override
65      public void delete(String pictureUrlUuid) {
66          // // Lösche die Bild Url aus der Datenbank
67          entityManager.remove(entityManager.find(PictureUrl.class, pictureUrlUuid));
68      }
69  
70  	/* (non-Javadoc)
71  	 * @see de.tivsource.page.dao.picture.PictureDaoLocal#isPicture(java.lang.String)
72  	 */
73  	@Override
74  	public Boolean isPicture(String uuid) {
75          Query query = entityManager.createQuery("select p from Picture p where p.uuid = :uuid and p.visible = 'Y' order by p.uuid asc");
76          query.setParameter("uuid", uuid);
77          return (query.getResultList().size() > 0 ? true : false);
78  	}
79  
80  	@Override
81  	public Boolean hasReferences(String uuid) {
82          Query query = entityManager.createQuery("select n from NamingItem n where n.picture.uuid = :uuid order by n.uuid asc");
83          query.setParameter("uuid", uuid);
84          return (query.getResultList().size() > 0 ? true : false);
85  	}
86  
87  	/* (non-Javadoc)
88  	 * @see de.tivsource.page.dao.picture.PictureDaoLocal#findByUuid(java.lang.String)
89  	 */
90  	@Override
91  	public Picture findByUuid(String uuid) {
92  		return entityManager.find(Picture.class, uuid);
93  	}
94  
95  	@SuppressWarnings("unchecked")
96  	@Override
97  	public List<Picture> findAll(String uuid) {
98          Query query = entityManager.createQuery("from Picture p where p.gallery.uuid = :uuid order by p.orderNumber asc");
99          query.setParameter("uuid", uuid);
100         return query.getResultList();
101 	}
102 
103 	/* (non-Javadoc)
104 	 * @see de.tivsource.page.dao.picture.PictureDaoLocal#findAll(java.lang.Integer, java.lang.Integer)
105 	 */
106 	@SuppressWarnings("unchecked")
107 	@Override
108 	public List<Picture> findAll(Integer start, Integer max) {
109         Query query = entityManager.createQuery("from Picture p order by p.orderNumber asc");
110         query.setFirstResult(start);
111         query.setMaxResults(max);
112         return query.getResultList();
113 	}
114 
115 	/* (non-Javadoc)
116 	 * @see de.tivsource.page.dao.picture.PictureDaoLocal#findAll(java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String)
117 	 */
118 	@SuppressWarnings("unchecked")
119 	@Override
120 	public List<Picture> findAll(Integer start, Integer max, String field, String order) {
121         String queryString = "SELECT DISTINCT p FROM Picture p JOIN p.descriptionMap dm JOIN p.gallery.descriptionMap gdm WHERE dm.language = 'DE' and gdm.language = 'DE' ORDER BY ";
122         queryString = queryString + field + " " + order;
123         Query query = entityManager.createQuery(queryString);
124         query.setFirstResult(start);
125         query.setMaxResults(max);
126         return query.getResultList();
127 	}
128 
129     @SuppressWarnings("unchecked")
130     @Override
131     public List<Picture> findAll(Integer start, Integer max, String galleryUuid, String field, String order) {
132         String queryString = "SELECT DISTINCT p FROM Picture p JOIN p.descriptionMap dm WHERE p.gallery.uuid = :galleryUuid AND dm.language = 'DE' ORDER BY ";
133         queryString = queryString + field + " " + order;
134         Query query = entityManager.createQuery(queryString);
135         query.setFirstResult(start);
136         query.setMaxResults(max);
137         query.setParameter("galleryUuid", galleryUuid);
138         return query.getResultList();
139     }
140 
141     @Override
142     public Picture findPreviousPicture(Integer start, String galleryUuid) {
143         Query query = entityManager.createQuery("SELECT p FROM Picture p WHERE p.gallery.uuid = :galleryUuid ORDER BY p.orderNumber desc");
144         query.setFirstResult(start);
145         query.setMaxResults(1);
146         query.setParameter("galleryUuid", galleryUuid);
147         return (Picture)query.getSingleResult();
148     }
149 
150     @Override
151     public Picture findCurrentPicture(Integer start, String galleryUuid) {
152         LOGGER.info("findCurrentPicture(Integer start, String galleryUuid) aufgerufen");
153         Query query = entityManager.createQuery("SELECT p FROM Picture p WHERE p.gallery.uuid = :galleryUuid ORDER BY p.orderNumber, p.uuid desc");
154         query.setFirstResult(start);
155         query.setMaxResults(1);
156         query.setParameter("galleryUuid", galleryUuid);
157         return (Picture)query.getResultList().get(0);
158     }
159 
160     @Override
161     public Picture findNextPicture(Integer start, String galleryUuid) {
162         Query query = entityManager.createQuery("SELECT p FROM Picture p WHERE p.gallery.uuid = :galleryUuid ORDER BY p.orderNumber desc");
163         query.setFirstResult(start);
164         query.setMaxResults(1);
165         query.setParameter("galleryUuid", galleryUuid);
166         return (Picture)query.getSingleResult();
167     }
168     
169 	/* (non-Javadoc)
170 	 * @see de.tivsource.page.dao.picture.PictureDaoLocal#countAll()
171 	 */
172 	@Override
173 	public Integer countAll() {
174         Query query = entityManager.createQuery("Select Count(p) from Picture p");
175         return Integer.parseInt(query.getSingleResult().toString());
176 	}
177 
178     @Override
179     public Integer countAllInGallery(String galleryUuid) {
180         Query query = entityManager.createQuery("Select Count(p) from Picture p where p.gallery.uuid = :galleryUuid");
181         query.setParameter("galleryUuid", galleryUuid);
182         return Integer.parseInt(query.getSingleResult().toString());
183     }
184 
185 }// Ende class