]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java
Rename SLC Hibernate
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.hibernate / src / main / java / org / argeo / slc / hibernate / test / tree / TreeTestResultCollectionDaoHibernate.java
diff --git a/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java b/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java
new file mode 100644 (file)
index 0000000..65fb02d
--- /dev/null
@@ -0,0 +1,67 @@
+package org.argeo.slc.hibernate.test.tree;\r
+\r
+import java.sql.SQLException;\r
+import java.util.SortedSet;\r
+import java.util.TreeSet;\r
+\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+import org.hibernate.HibernateException;\r
+import org.hibernate.LockMode;\r
+import org.hibernate.Session;\r
+import org.springframework.orm.hibernate3.HibernateCallback;\r
+import org.springframework.orm.hibernate3.support.HibernateDaoSupport;\r
+\r
+public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport\r
+               implements TreeTestResultCollectionDao {\r
+\r
+       public void create(TreeTestResultCollection ttrCollection) {\r
+               getHibernateTemplate().save(ttrCollection);\r
+       }\r
+\r
+       public TreeTestResultCollection getTestResultCollection(String id) {\r
+               return (TreeTestResultCollection) getHibernateTemplate().get(\r
+                               TreeTestResultCollection.class, id);\r
+       }\r
+\r
+       public void update(TreeTestResultCollection ttrCollection) {\r
+               getHibernateTemplate().update(ttrCollection);\r
+       }\r
+\r
+       public SortedSet<TreeTestResultCollection> listCollections() {\r
+               return new TreeSet<TreeTestResultCollection>(getHibernateTemplate()\r
+                               .find("from TreeTestResultCollection"));\r
+       }\r
+\r
+       public void addResultToCollection(final TreeTestResultCollection ttrc,\r
+                       final String resultUuid) {\r
+               getHibernateTemplate().execute(new HibernateCallback() {\r
+                       public Object doInHibernate(Session session)\r
+                                       throws HibernateException, SQLException {\r
+                               session.lock(ttrc, LockMode.NONE);\r
+                               TreeTestResult ttr = (TreeTestResult) session.get(\r
+                                               TreeTestResult.class, resultUuid);\r
+                               ttrc.getResults().add(ttr);\r
+                               session.update(ttrc);\r
+                               return ttrc;\r
+                       }\r
+               });\r
+       }\r
+\r
+       public void removeResultFromCollection(final TreeTestResultCollection ttrc,\r
+                       final String resultUuid) {\r
+               getHibernateTemplate().execute(new HibernateCallback() {\r
+                       public Object doInHibernate(Session session)\r
+                                       throws HibernateException, SQLException {\r
+                               session.lock(ttrc, LockMode.NONE);\r
+                               TreeTestResult ttr = (TreeTestResult) session.get(\r
+                                               TreeTestResult.class, resultUuid);\r
+                               if (ttrc.getResults().remove(ttr))\r
+                                       session.update(ttrc);\r
+                               return ttrc;\r
+                       }\r
+               });\r
+       }\r
+\r
+}\r