comparison src/main/java/edu/harvard/iq/dataverse/DataverseLinkingServiceBean.java @ 10:a50cf11e5178

Rewrite LGDataverse completely upgrading to dataverse4.0
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 08 Sep 2015 17:00:21 +0200
parents
children
comparison
equal deleted inserted replaced
9:5926d6419569 10:a50cf11e5178
1 /*
2 * To change this license header, choose License Headers in Project Properties.
3 * To change this template file, choose Tools | Templates
4 * and open the template in the editor.
5 */
6 package edu.harvard.iq.dataverse;
7
8 import java.util.ArrayList;
9 import java.util.List;
10 import javax.ejb.EJB;
11 import javax.ejb.Stateless;
12 import javax.inject.Named;
13 import javax.persistence.EntityManager;
14 import javax.persistence.PersistenceContext;
15 import javax.persistence.Query;
16 import javax.persistence.TypedQuery;
17
18 /**
19 *
20 * @author skraffmiller
21 */
22 @Stateless
23 @Named
24 public class DataverseLinkingServiceBean implements java.io.Serializable {
25
26 @PersistenceContext(unitName = "VDCNet-ejbPU")
27 private EntityManager em;
28
29 @EJB
30 DataverseServiceBean dataverseService;
31
32
33 public List<Dataverse> findLinkedDataverses(Long linkingDataverseId) {
34 List<Dataverse> retList = new ArrayList();
35 Query query = em.createQuery("select object(o) from DataverseLinkingDataverse as o where o.linkingDataverse.id =:linkingDataverseId order by o.id");
36 query.setParameter("linkingDataverseId", linkingDataverseId);
37 for (Object o : query.getResultList()) {
38 DataverseLinkingDataverse convterted = (DataverseLinkingDataverse) o;
39 retList.add(convterted.getDataverse());
40 }
41 return retList;
42 }
43
44 public List<Dataverse> findLinkingDataverses(Long dataverseId) {
45 List<Dataverse> retList = new ArrayList();
46 Query query = em.createQuery("select object(o) from DataverseLinkingDataverse as o where o.dataverse.id =:dataverseId order by o.id");
47 query.setParameter("dataverseId", dataverseId);
48 for (Object o : query.getResultList()) {
49 DataverseLinkingDataverse convterted = (DataverseLinkingDataverse) o;
50 retList.add(convterted.getLinkingDataverse());
51 }
52 return retList;
53 }
54
55 public void save(DataverseLinkingDataverse dataverseLinkingDataverse) {
56 if (dataverseLinkingDataverse.getId() == null) {
57 em.persist(dataverseLinkingDataverse);
58 } else {
59 em.merge(dataverseLinkingDataverse);
60 }
61 }
62
63 public boolean alreadyLinked(Dataverse definitionPoint, Dataverse dataverseToLinkTo) {
64 TypedQuery<DataverseLinkingDataverse> typedQuery = em.createQuery("SELECT OBJECT(o) FROM DataverseLinkingDataverse AS o WHERE o.linkingDataverse.id = :dataverseId AND o.dataverse.id = :dataverseToLinkTo", DataverseLinkingDataverse.class);
65 typedQuery.setParameter("dataverseId", definitionPoint.getId());
66 typedQuery.setParameter("dataverseToLinkTo", dataverseToLinkTo.getId());
67 return !typedQuery.getResultList().isEmpty();
68 }
69 }