View Javadoc

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