Example #1
0
  public List<Experiment> getSharedExperiments(User user) {
    String queryString = "from User u inner join fetch u.experiments where u.username=:username";
    Query query = dao.getEntityManager().createQuery(queryString);
    query.setParameter("username", user.getUsername());
    @SuppressWarnings("unchecked")
    List<User> users = query.getResultList();
    List<Experiment> experiments = new ArrayList<Experiment>();
    for (User userSingleE : users) {
      Object[] userExperiments = userSingleE.getExperiments().toArray();
      for (Object o : userExperiments) {
        Experiment e = (Experiment) o;
        boolean have = false;
        for (Experiment currentE : experiments) {
          if (currentE.getId() == e.getId()) have = true;
        }
        if (!have) experiments.add(e);
      }
    }

    // get experiments shared with all
    queryString = "from Experiment where shareWithAll=:shareWithAll";
    query = dao.getEntityManager().createQuery(queryString);
    query.setParameter("shareWithAll", true);
    @SuppressWarnings("unchecked")
    List<Object> experimentsSharedWithAll = query.getResultList();
    for (Object o : experimentsSharedWithAll) {
      experiments.add((Experiment) o);
    }

    for (Experiment experiment : experiments) {
      experiment.setNumDataSets(getNumDataSets(experiment));
    }

    return experiments;
  }
Example #2
0
 public int getNumDataSets(Experiment experiment) {
   String queryString = "SELECT COUNT(ds.id) from DataSet ds where experiment.id=:id";
   Query query = dao.getEntityManager().createQuery(queryString);
   query.setParameter("id", experiment.getId());
   Number result = (Number) query.getSingleResult();
   return result.intValue();
 }
Example #3
0
 public void removeExperimentFromCopiedTo(Experiment experiment) {
   for (Experimentable experimentable : experiment.getExperimentable()) {
     List<Experiment> newCopiedToList = new ArrayList<Experiment>();
     for (Experiment experimentCopiedTo : experimentable.getCopiedTo()) {
       if (experiment.getId() != experimentCopiedTo.getId()) {
         newCopiedToList.add(experiment);
       }
     }
     experimentable.setCopiedTo(newCopiedToList);
     dao.update(experimentable);
     dao.getEntityManager().flush();
   }
   experiment.setExperimentable(new ArrayList<Experimentable>());
   dao.update(experiment);
   dao.getEntityManager().flush();
 }
Example #4
0
 public void removeCurrentExperimentFromUsers(Experiment experiment) {
   String queryString =
       "update User u set currentExperiment=null where currentExperiment.id=:experimentId";
   Query query = dao.getEntityManager().createQuery(queryString);
   query.setParameter("experimentId", experiment.getId());
   query.executeUpdate();
 }
Example #5
0
 public void remove(Experiment experiment) {
   removeCurrentExperimentFromUsers(experiment);
   //    	Experiment result = (Experiment) dao.get(Experiment.class.getName(), "id",
   // experiment.getId());
   //    	dao.remove(result);
   String queryString = "delete from Experiment where id=:experimentId";
   Query query = dao.getEntityManager().createQuery(queryString);
   query.setParameter("experimentId", experiment.getId());
   query.executeUpdate();
 }
Example #6
0
 public void removeCurrentExperimentFromExperimentables(Experiment experiment) {
   String queryString = "from Experimentable where experiment.id=:experimentId";
   Query query = dao.getEntityManager().createQuery(queryString);
   query.setParameter("experimentId", experiment.getId());
   List<Experimentable> experimentables = query.getResultList();
   for (Experimentable e : experimentables) {
     e.setExperiment(null);
     dao.getEntityManager().merge(e);
   }
 }