View Javadoc

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