+/*\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
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
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
\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
treeTestResult.getResultParts().put(path, lst);\r
}\r
lst.getParts().add(resultPart);\r
- treeTestResult.getElements().putAll(relatedElements);\r
+ if (relatedElements != null)\r
+ treeTestResult.getElements().putAll(relatedElements);\r
+\r
+ session.update(treeTestResult);\r
+ return treeTestResult;\r
+ }\r
+ });\r
+\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
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