View Javadoc

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