View Javadoc

1   /**
2    * 
3    */
4   package de.tivsource.page.dao.contententry;
5   
6   import java.util.Date;
7   import java.util.List;
8   
9   import javax.ejb.Stateless;
10  import javax.persistence.EntityManager;
11  import javax.persistence.PersistenceContext;
12  import javax.persistence.Query;
13  
14  import org.apache.logging.log4j.LogManager;
15  import org.apache.logging.log4j.Logger;
16  
17  import de.tivsource.page.common.menuentry.ContentEntry;
18  
19  /**
20   * @author Marc Michele
21   *
22   */
23  @Stateless
24  public class ContentEntryDao implements ContentEntryDaoLocal {
25  
26  	/*
27       * Statischer Logger der Klasse.
28       */
29      private static final Logger LOGGER = LogManager.getLogger(ContentEntryDao.class);
30  
31      /*
32       * EntityManager der Dao Klasse.
33       */
34      @PersistenceContext
35      private EntityManager entityManager;
36  
37  	/* (non-Javadoc)
38  	 * @see de.tivsource.portal.dao.contententry.ContentEntryDaoLocal#save(de.tivsource.portal.common.menuentry.ContentEntry)
39  	 */
40  	@Override
41  	public void save(ContentEntry contentEntry) {
42          LOGGER.info("save(ContentEntry contentEntry) aufgerufen");
43          contentEntry.setCreated(new Date());
44          entityManager.persist(contentEntry);
45  	}
46  
47  	/* (non-Javadoc)
48  	 * @see de.tivsource.portal.dao.contententry.ContentEntryDaoLocal#merge(de.tivsource.portal.common.menuentry.ContentEntry)
49  	 */
50  	@Override
51  	public void merge(ContentEntry contentEntry) {
52          LOGGER.info("merge(ContentEntry contentEntry) aufgerufen");
53          entityManager.merge(contentEntry);
54  	}
55  
56  	/* (non-Javadoc)
57  	 * @see de.tivsource.portal.dao.contententry.ContentEntryDaoLocal#delete(de.tivsource.portal.common.menuentry.ContentEntry)
58  	 */
59  	@Override
60  	public void delete(ContentEntry contentEntry) {
61  		entityManager.remove(entityManager.find(ContentEntry.class, contentEntry.getUuid()));
62  	}
63  
64  	/* (non-Javadoc)
65  	 * @see de.tivsource.portal.dao.contententry.ContentEntryDaoLocal#isContentEntryUrl(java.lang.String)
66  	 */
67  	@Override
68  	public Boolean isContentEntryUrl(String urlName) {
69          Query query = entityManager.createQuery("select ce from ContentEntry ce where ce.technical = :urlName and ce.visible = 'Y' order by ce.uuid asc");
70          query.setParameter("urlName", urlName);
71          return (query.getResultList().size() > 0 ? true : false);
72  	}
73  
74  	/* (non-Javadoc)
75  	 * @see de.tivsource.portal.dao.contententry.ContentEntryDaoLocal#findByTechnical(java.lang.String)
76  	 */
77  	@Override
78  	public ContentEntry findByTechnical(String technical) {
79          LOGGER.info("findByTechnical(String technical) aufgerufen.");
80          Query query = entityManager.createQuery("select ce from ContentEntry ce where ce.technical = :technical");
81          query.setParameter("technical", technical);
82          return (ContentEntry)query.getSingleResult();
83  	}
84  
85  	/* (non-Javadoc)
86  	 * @see de.tivsource.portal.dao.contententry.ContentEntryDaoLocal#findByUuid(java.lang.String)
87  	 */
88  	@Override
89  	public ContentEntry findByUuid(String uuid) {
90  		return entityManager.find(ContentEntry.class, uuid);
91  	}
92  
93  	/* (non-Javadoc)
94  	 * @see de.tivsource.portal.dao.contententry.ContentEntryDaoLocal#findAll(java.lang.Integer, java.lang.Integer)
95  	 */
96  	@SuppressWarnings("unchecked")
97  	@Override
98  	public List<ContentEntry> findAll(Integer start, Integer max) {
99          Query query = entityManager.createQuery("from ContentEntry ce");
100         query.setFirstResult(start);
101         query.setMaxResults(max);
102         return query.getResultList();
103 	}
104 
105 	/* (non-Javadoc)
106 	 * @see de.tivsource.portal.dao.contententry.ContentEntryDaoLocal#findAll(java.lang.Integer, java.lang.Integer, java.lang.String, java.lang.String)
107 	 */
108 	@SuppressWarnings("unchecked")
109 	@Override
110 	public List<ContentEntry> findAll(Integer start, Integer max, String field, String order) {
111         String queryString = "SELECT DISTINCT ce FROM ContentEntry ce JOIN ce.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.portal.dao.contententry.ContentEntryDaoLocal#countAll()
121 	 */
122 	@Override
123 	public Integer countAll() {
124         Query query = entityManager.createQuery("Select Count(ce) from ContentEntry ce");
125         return Integer.parseInt(query.getSingleResult().toString());
126 	}
127 
128 }// Ende class