Mercurial > hg > LGDataverses
diff src/main/java/edu/harvard/iq/dataverse/datavariable/VariableServiceBean.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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/edu/harvard/iq/dataverse/datavariable/VariableServiceBean.java Tue Sep 08 17:00:21 2015 +0200 @@ -0,0 +1,118 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package edu.harvard.iq.dataverse.datavariable; + +import java.util.List; +import java.util.Iterator; +import java.util.logging.Logger; +import javax.ejb.Stateless; +import javax.inject.Named; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; + +/** + * + * @author Leonid Andreev + * + * Basic skeleton of the new DataVariable service for DVN 4.0 + */ + +@Stateless +@Named +public class VariableServiceBean { + public static final String[] summaryStatisticTypes = {"mean", "medn", "mode", "vald", "invd", "min", "max", "stdev"}; + + //private static final Logger logger = Logger.getLogger(VariableServiceBean.class.getCanonicalName()); + + @PersistenceContext(unitName = "VDCNet-ejbPU") + private EntityManager em; + + public DataVariable save(DataVariable variable) { + DataVariable savedVariable = em.merge(variable); + return savedVariable; + } + + public DataVariable find(Object pk) { + return (DataVariable) em.find(DataVariable.class, pk); + } + + public List<DataVariable> findByDataFileId(Long fileId) { + Query query = em.createQuery("select object(o) from DataVariable as o where o.dataTable.dataFile.id =:fileId order by o.fileOrder"); + query.setParameter("fileId", fileId); + return query.getResultList(); + } + + public List<DataVariable> findByDataTableId(Long dtId) { + Query query = em.createQuery("select object(o) from DataVariable as o where o.dataTable.id =:dtId order by o.fileOrder"); + query.setParameter("dtId", dtId); + return query.getResultList(); + } + + /* + * This is awful! + * TODO: stop keeping format types in the database! + * Re-work VariableFormatType to just define constants for "numeric" and "character"; + * better yet, re-work the entire scheme of how variable types are stored and + * defined. + * -- L.A. 4.0 + * + public VariableFormatType findVariableFormatTypeByName(String name) { + Query query = em.createQuery("SELECT t from VariableFormatType t where t.name = :name"); + query.setParameter("name", name); + VariableFormatType type = null; + try { + type = (VariableFormatType)query.getSingleResult(); + } catch (javax.persistence.NoResultException e) { + // DO nothing, just return null. + } + return type; + } + + public VariableIntervalType findVariableIntervalTypeByName(String name) { + String query="SELECT t from VariableIntervalType t where t.name = '"+name+"'"; + VariableIntervalType type = null; + try { + type=(VariableIntervalType)em.createQuery(query).getSingleResult(); + } catch (javax.persistence.NoResultException e) { + // DO nothing, just return null. + } + return type; + } + + public SummaryStatisticType findSummaryStatisticTypeByName(String name) { + String query = "SELECT t from SummaryStatisticType t where t.name = '" + name + "'"; + SummaryStatisticType type = null; + try { + type = (SummaryStatisticType) em.createQuery(query).getSingleResult(); + } catch (javax.persistence.NoResultException e) { + // DO nothing, just return null. + } + return type; + } + + public List<SummaryStatisticType> findAllSummaryStatisticType() { + String query = "SELECT t from SummaryStatisticType t "; + return em.createQuery(query).getResultList(); + + } + + + public SummaryStatisticType findSummaryStatisticTypeByName(List<SummaryStatisticType> typeList, String name) { + SummaryStatisticType type = null; + for (Iterator<SummaryStatisticType> it = typeList.iterator(); it.hasNext();) { + SummaryStatisticType elem = it.next(); + if (elem.getName().equals(name)) { + type = elem; + break; + } + } + return type; + } + */ + +}
