View Javadoc

1   /**
2    * 
3    */
4   package de.tivsource.page.dao.feedback;
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.feedback.FeedbackOption;
17  
18  /**
19   * @author Marc Michele
20   *
21   */
22  @Stateless
23  public class FeedbackOptionDao implements FeedbackOptionDaoLocal {
24  
25      /*
26       * Statischer Logger der Klasse.
27       */
28      private static final Logger LOGGER = LogManager.getLogger(FeedbackOptionDao.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.feedback.FeedbackOptionDaoLocal#merge(de.tivsource.page.entity.feedback.FeedbackOption)
38       */
39      @Override
40      public void merge(FeedbackOption feedbackOption) {
41          LOGGER.info("merge(FeedbackOption feedbackOption) aufgerufen");
42          entityManager.merge(feedbackOption);
43      }
44  
45      /* (non-Javadoc)
46       * @see de.tivsource.page.dao.feedback.FeedbackOptionDaoLocal#delete(de.tivsource.page.entity.feedback.FeedbackOption)
47       */
48      @Override
49      public void delete(FeedbackOption feedbackOption) {
50          entityManager.remove(entityManager.find(FeedbackOption.class, feedbackOption.getUuid()));
51      }
52  
53      /* (non-Javadoc)
54       * @see de.tivsource.page.dao.feedback.FeedbackOptionDaoLocal#isFeedbackOption(java.lang.String)
55       */
56      @Override
57      public Boolean isFeedbackOption(String uuid) {
58          Query query = entityManager.createQuery("select fo from FeedbackOption fo where fo.uuid = :uuid and fo.visible = 'Y' order by fo.uuid asc");
59          query.setParameter("uuid", uuid);
60          return (query.getResultList().size() > 0 ? true : false);
61      }
62  
63      /* (non-Javadoc)
64       * @see de.tivsource.page.dao.feedback.FeedbackOptionDaoLocal#hasReferences(java.lang.String)
65       */
66      @Override
67      public Boolean hasReferences(String uuid) {
68          // TODO Auto-generated method stub
69          return null;
70      }
71  
72      /* (non-Javadoc)
73       * @see de.tivsource.page.dao.feedback.FeedbackOptionDaoLocal#findByUuid(java.lang.String)
74       */
75      @Override
76      public FeedbackOption findByUuid(String uuid) {
77          return entityManager.find(FeedbackOption.class, uuid);
78      }
79  
80      /* (non-Javadoc)
81       * @see de.tivsource.page.dao.feedback.FeedbackOptionDaoLocal#findAll(java.lang.Integer, java.lang.Integer)
82       */
83      @Override
84      @SuppressWarnings("unchecked")
85      public List<FeedbackOption> findAll(Integer start, Integer max) {
86          Query query = entityManager.createQuery("from FeedbackOption fo order by fo.orderNumber asc");
87          query.setFirstResult(start);
88          query.setMaxResults(max);
89          return query.getResultList();
90      }
91  
92      /* (non-Javadoc)
93       * @see de.tivsource.page.dao.feedback.FeedbackOptionDaoLocal#findAll(java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String)
94       */
95      @Override
96      @SuppressWarnings("unchecked")
97      public List<FeedbackOption> findAll(Integer start, Integer max, String field, String order) {
98          String queryString = "SELECT DISTINCT fo FROM FeedbackOption fo JOIN fo.descriptionMap dm WHERE dm.language = 'DE' ORDER BY ";
99          queryString = queryString + field + " " + order;
100         Query query = entityManager.createQuery(queryString);
101         query.setFirstResult(start);
102         query.setMaxResults(max);
103         return query.getResultList();
104     }
105 
106     /* (non-Javadoc)
107      * @see de.tivsource.page.dao.feedback.FeedbackOptionDaoLocal#findAllVisible(java.lang.Integer, java.lang.Integer)
108      */
109     @Override
110     @SuppressWarnings("unchecked")
111     public List<FeedbackOption> findAllVisible(Integer start, Integer max) {
112         Query query = entityManager.createQuery("from FeedbackOption fo where fo.visible = :uuid order by fo.orderNumber asc");
113         query.setFirstResult(start);
114         query.setMaxResults(max);
115         query.setParameter("uuid", true);
116         return query.getResultList();
117     }
118 
119     /* (non-Javadoc)
120      * @see de.tivsource.page.dao.feedback.FeedbackOptionDaoLocal#countAll()
121      */
122     @Override
123     public Integer countAll() {
124         Query query = entityManager.createQuery("Select Count(fo) from FeedbackOption fo");
125         return Integer.parseInt(query.getSingleResult().toString());
126     }
127 
128     /* (non-Javadoc)
129      * @see de.tivsource.page.dao.feedback.FeedbackOptionDaoLocal#countAllVisible()
130      */
131     @Override
132     public Integer countAllVisible() {
133         Query query = entityManager.createQuery("Select Count(fo) from FeedbackOption fo where fo.visible = :uuid");
134         query.setParameter("uuid", true);
135         return Integer.parseInt(query.getSingleResult().toString());
136     }
137 
138 }// Ende class