View Javadoc

1   /**
2    * 
3    */
4   package de.tivsource.page.dao.captcha;
5   
6   import java.util.Date;
7   import java.util.List;
8   import java.util.Random;
9   import java.util.logging.Logger;
10  
11  import javax.ejb.Stateless;
12  import javax.persistence.EntityManager;
13  import javax.persistence.PersistenceContext;
14  import javax.persistence.Query;
15  
16  import de.tivsource.page.common.captcha.Captcha;
17  
18  /**
19   * @author Marc Michele
20   *
21   */
22  @Stateless
23  public class CaptchaDao implements CaptchaDaoLocal {
24  
25      private static final Logger logger = Logger.getLogger("INFO");
26  
27      @PersistenceContext
28      private EntityManager entityManager;
29  
30      /* (non-Javadoc)
31       * @see de.czastka.dao.captcha.CaptchaDaoLocal#merge(de.czastka.entity.captcha.Captcha)
32       */
33      @Override
34      public void merge(Captcha captcha) {
35          logger.info("merge(Captcha captcha) aufgerufen");
36          captcha.setModified(new Date());
37          entityManager.merge(captcha);
38      }
39  
40      /* (non-Javadoc)
41       * @see de.czastka.dao.captcha.CaptchaDaoLocal#delete(de.czastka.entity.captcha.Captcha)
42       */
43      @Override
44      public void delete(Captcha captcha) {
45          entityManager.remove(entityManager.find(Captcha.class, captcha.getUuid()));
46      }
47  
48      /* (non-Javadoc)
49       * @see de.czastka.dao.captcha.CaptchaDaoLocal#findByUuid(java.lang.String)
50       */
51      @Override
52      public Captcha findByUuid(String uuid) {
53          return entityManager.find(Captcha.class, uuid);
54      }
55  
56      /* (non-Javadoc)
57       * @see de.czastka.dao.captcha.CaptchaDaoLocal#findAll(java.lang.Integer, java.lang.Integer)
58       */
59      @SuppressWarnings("unchecked")
60      @Override
61      public List<Captcha> findAll(Integer start, Integer max) {
62          Query query = entityManager.createQuery("from Captcha c order by c.uuid asc");
63          query.setFirstResult(start);
64          query.setMaxResults(max);
65          return query.getResultList();
66      }
67  
68      /* (non-Javadoc)
69       * @see de.czastka.dao.captcha.CaptchaDaoLocal#findAll(java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String)
70       */
71      @SuppressWarnings("unchecked")
72      @Override
73      public List<Captcha> findAll(Integer start, Integer max, String field, String order) {
74          String queryString = "SELECT c FROM Captcha c ORDER BY ";
75          queryString = queryString + field + " " + order;
76          Query query = entityManager.createQuery(queryString);
77          query.setFirstResult(start);
78          query.setMaxResults(max);
79          return query.getResultList();
80      }
81  
82      /* (non-Javadoc)
83       * @see de.czastka.dao.captcha.CaptchaDaoLocal#countAll()
84       */
85      @Override
86      public Integer countAll() {
87          Query query = entityManager.createQuery("Select Count(c) from Captcha c");
88          return Integer.parseInt(query.getSingleResult().toString());
89      }
90  
91      /* (non-Javadoc)
92       * @see de.czastka.dao.captcha.CaptchaDaoLocal#random()
93       */
94      @Override
95      public Captcha random() {
96          Random random = new Random();
97          int next = random.nextInt(countAll());
98          logger.info("Captcha Random Number: " + next);
99          return findAll(next, 1).get(0);
100     }
101 
102 }// Ende class