import java.util.Map;\r
import java.util.SortedMap;\r
\r
-import org.argeo.slc.core.SlcException;\r
-import org.argeo.slc.core.structure.StructureElement;\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.TestResult;\r
import org.argeo.slc.core.test.tree.PartSubList;\r
import org.argeo.slc.core.test.tree.TreeTestResult;\r
import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
+import org.argeo.slc.structure.StructureElement;\r
+import org.argeo.slc.test.TestResult;\r
import org.hibernate.HibernateException;\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
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
+ 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