]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernate.java
Adapt to new Commons structure
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.hibernate / src / main / java / org / argeo / slc / hibernate / test / tree / TreeTestResultDaoHibernate.java
index fefa76de899375d47baa77ff72a6bbad175a10f2..c25a156efdd636054d016476a49d94c53bbd72bf 100644 (file)
@@ -1,3 +1,18 @@
+/*\r
+ * Copyright (C) 2007-2012 Mathieu Baudier\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *         http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 package org.argeo.slc.hibernate.test.tree;\r
 \r
 import java.sql.SQLException;\r
@@ -7,6 +22,7 @@ import java.util.Map;
 import java.util.SortedMap;\r
 \r
 import org.argeo.slc.SlcException;\r
+import org.argeo.slc.core.attachment.SimpleAttachment;\r
 import org.argeo.slc.core.structure.tree.TreeSPath;\r
 import org.argeo.slc.core.test.SimpleResultPart;\r
 import org.argeo.slc.core.test.tree.PartSubList;\r
@@ -18,6 +34,7 @@ import org.hibernate.HibernateException;
 import org.hibernate.Session;\r
 import org.springframework.orm.hibernate3.HibernateCallback;\r
 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;\r
+import org.springframework.util.Assert;\r
 \r
 /**\r
  * The Hibernate implementation for tree-based result of the test result dao.\r
@@ -46,11 +63,13 @@ public class TreeTestResultDaoHibernate extends HibernateDaoSupport implements
 \r
        }\r
 \r
+       @SuppressWarnings("unchecked")\r
        public List<TreeTestResult> listTestResults() {\r
                return (List<TreeTestResult>) getHibernateTemplate().find(\r
                                "from TreeTestResult");\r
        }\r
 \r
+       @SuppressWarnings("unchecked")\r
        public List<TreeTestResult> listResults(TreeSPath path) {\r
                List<TreeTestResult> list = getHibernateTemplate().find(\r
                                "from TreeTestResult res where ? in indices(res.resultParts)",\r
@@ -98,6 +117,33 @@ public class TreeTestResultDaoHibernate extends HibernateDaoSupport implements
 \r
        }\r
 \r
+       public void addAttachment(final String testResultId,\r
+                       final SimpleAttachment attachment) {\r
+               getHibernateTemplate().execute(new HibernateCallback() {\r
+\r
+                       public Object doInHibernate(Session session)\r
+                                       throws HibernateException, SQLException {\r
+                               TreeTestResult treeTestResult = getTreeTestResult(session,\r
+                                               testResultId);\r
+\r
+                               // Check is there is already such an attachment\r
+                               Assert.notNull(attachment, "attachment is null");\r
+                               Assert.notNull(session, "session is null");\r
+                               SimpleAttachment att = (SimpleAttachment) session.get(\r
+                                               attachment.getClass(), attachment.getUuid());\r
+                               if (att != null)\r
+                                       throw new SlcException(\r
+                                                       "There is already an attachement with id "\r
+                                                                       + attachment.getUuid());\r
+\r
+                               treeTestResult.getAttachments().add(attachment);\r
+                               session.update(treeTestResult);\r
+                               return treeTestResult;\r
+                       }\r
+               });\r
+\r
+       }\r
+\r
        protected TreeTestResult getTreeTestResult(Session session,\r
                        String testResultId) {\r
                TreeTestResult treeTestResult = (TreeTestResult) session.get(\r
@@ -108,7 +154,7 @@ public class TreeTestResultDaoHibernate extends HibernateDaoSupport implements
        }\r
 \r
        public void updateAttributes(final String testResultId,\r
-                       final Map<String, String> attributes) {\r
+                       final SortedMap<String, String> attributes) {\r
                getHibernateTemplate().execute(new HibernateCallback() {\r
 \r
                        public Object doInHibernate(Session session)\r