]> git.argeo.org Git - gpl/argeo-slc.git/blob - TestResultDaoHibernate.java
c18d2be8a3f5d756e9b51bc4315c4bdeb454c94b
[gpl/argeo-slc.git] / TestResultDaoHibernate.java
1 package org.argeo.slc.hibernate.test.tree;
2
3 import java.util.Date;
4 import java.util.List;
5
6 import org.argeo.slc.core.SlcException;
7 import org.argeo.slc.core.structure.tree.TreeSPath;
8 import org.argeo.slc.core.test.TestResult;
9 import org.argeo.slc.core.test.tree.TreeTestResult;
10 import org.argeo.slc.dao.test.tree.TreeTestResultDao;
11 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
12
13 /**
14 * The Hibernate implementation for tree-based result of the test result dao.
15 *
16 * @see TreeTestResult
17 */
18 public class TestResultDaoHibernate extends HibernateDaoSupport implements
19 TreeTestResultDao {
20
21 public void create(TestResult testResult) {
22 getHibernateTemplate().save(testResult);
23 }
24
25 public void update(TestResult testResult) {
26 getHibernateTemplate().saveOrUpdate(testResult);
27 }
28
29 public TreeTestResult getTestResult(String uuid) {
30 List<?> list = getHibernateTemplate().find(
31 "from TreeTestResult where uuid=?", uuid);
32 if (list.size() == 0) {
33 return null;
34 } else {
35 return (TreeTestResult) list.get(0);
36 }
37
38 }
39
40 public List<TreeTestResult> listTestResults() {
41 return (List<TreeTestResult>) getHibernateTemplate().find(
42 "from TreeTestResult");
43 }
44
45 public List<TreeTestResult> listResults(TreeSPath path) {
46 List<TreeTestResult> list = getHibernateTemplate().find(
47 "from TreeTestResult res where ? in indices(res.resultParts)",
48 path.getAsUniqueString());
49 return list;
50 }
51
52 public void close(String id, Date closeDate) {
53 // TreeTestResult ttr = (TreeTestResult) getHibernateTemplate().load(
54 // TreeTestResult.class, id);
55 TreeTestResult ttr = getTestResult(id);
56 if (ttr != null) {
57 ttr.setCloseDate(closeDate);
58 getHibernateTemplate().update(ttr);
59 } else {
60 throw new SlcException("Result with id " + id
61 + " could not be closed because it was not found.");
62 }
63 }
64
65 }