View Javadoc

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