X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.hibernate%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fhibernate%2Ftest%2Ftree%2FTreeTestResultDaoHibernate.java;h=def44a8a15d94b78de11fee4fce67aa7e46e6406;hb=96f732785d5236ab435f6be5da3d53ba66c9b86d;hp=9d40956bf0a132ee4ec68bc5670079f89bf70121;hpb=27442cdd51bb92778b33ec6899c376cd7d848eec;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernate.java b/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernate.java index 9d40956bf..def44a8a1 100644 --- a/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernate.java +++ b/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultDaoHibernate.java @@ -6,18 +6,20 @@ import java.util.List; import java.util.Map; import java.util.SortedMap; -import org.argeo.slc.core.SlcException; -import org.argeo.slc.core.structure.StructureElement; +import org.argeo.slc.SlcException; +import org.argeo.slc.core.attachment.SimpleAttachment; import org.argeo.slc.core.structure.tree.TreeSPath; import org.argeo.slc.core.test.SimpleResultPart; -import org.argeo.slc.core.test.TestResult; import org.argeo.slc.core.test.tree.PartSubList; import org.argeo.slc.core.test.tree.TreeTestResult; import org.argeo.slc.dao.test.tree.TreeTestResultDao; +import org.argeo.slc.structure.StructureElement; +import org.argeo.slc.test.TestResult; import org.hibernate.HibernateException; import org.hibernate.Session; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.springframework.util.Assert; /** * The Hibernate implementation for tree-based result of the test result dao. @@ -88,7 +90,8 @@ public class TreeTestResultDaoHibernate extends HibernateDaoSupport implements treeTestResult.getResultParts().put(path, lst); } lst.getParts().add(resultPart); - treeTestResult.getElements().putAll(relatedElements); + if (relatedElements != null) + treeTestResult.getElements().putAll(relatedElements); session.update(treeTestResult); return treeTestResult; @@ -97,6 +100,33 @@ public class TreeTestResultDaoHibernate extends HibernateDaoSupport implements } + public void addAttachment(final String testResultId, + final SimpleAttachment attachment) { + getHibernateTemplate().execute(new HibernateCallback() { + + public Object doInHibernate(Session session) + throws HibernateException, SQLException { + TreeTestResult treeTestResult = getTreeTestResult(session, + testResultId); + + // Check is there is already such an attachment + Assert.notNull(attachment, "attachment is null"); + Assert.notNull(session, "session is null"); + SimpleAttachment att = (SimpleAttachment) session.get( + attachment.getClass(), attachment.getUuid()); + if (att != null) + throw new SlcException( + "There is already an attachement with id " + + attachment.getUuid()); + + treeTestResult.getAttachments().add(attachment); + session.update(treeTestResult); + return treeTestResult; + } + }); + + } + protected TreeTestResult getTreeTestResult(Session session, String testResultId) { TreeTestResult treeTestResult = (TreeTestResult) session.get(