import java.util.Date;\r
import java.util.List;\r
import java.util.Map;\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
\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