package org.argeo.slc.hibernate.process;\r
\r
+import java.sql.SQLException;\r
import java.util.List;\r
\r
+import org.springframework.orm.hibernate3.HibernateCallback;\r
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;\r
\r
+import org.argeo.slc.core.SlcException;\r
import org.argeo.slc.core.process.SlcExecution;\r
+import org.argeo.slc.core.process.SlcExecutionStep;\r
import org.argeo.slc.dao.process.SlcExecutionDao;\r
+import org.hibernate.HibernateException;\r
+import org.hibernate.Session;\r
\r
public class SlcExecutionDaoHibernate extends HibernateDaoSupport implements\r
SlcExecutionDao {\r
SlcExecution.class);\r
}\r
\r
+ public void addSteps(final String slcExecutionId,\r
+ final List<SlcExecutionStep> additionalSteps) {\r
+ getHibernateTemplate().execute(new HibernateCallback() {\r
+\r
+ public Object doInHibernate(Session session)\r
+ throws HibernateException, SQLException {\r
+ SlcExecution slcExecution = (SlcExecution) session.get(\r
+ SlcExecution.class, slcExecutionId);\r
+\r
+ if (slcExecution == null)\r
+ throw new SlcException("Could not find SLC execution "\r
+ + slcExecutionId);\r
+\r
+ slcExecution.getSteps().addAll(additionalSteps);\r
+ session.update(slcExecution);\r
+ return slcExecution;\r
+ }\r
+ });\r
+\r
+ }\r
+\r
}\r
package org.argeo.slc.hibernate.test.tree;\r
\r
+import java.sql.SQLException;\r
import java.util.SortedSet;\r
import java.util.TreeSet;\r
\r
+import org.springframework.orm.hibernate3.HibernateCallback;\r
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;\r
\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
import org.argeo.slc.core.test.tree.TreeTestResultCollection;\r
import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;\r
+import org.hibernate.HibernateException;\r
+import org.hibernate.Session;\r
+import org.hibernate.action.Executable;\r
\r
public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport\r
implements TreeTestResultCollectionDao {\r
.find("from TreeTestResultCollection"));\r
}\r
\r
+ public void addResultToCollection(final TreeTestResultCollection ttrc,\r
+ final String resultUuid) {\r
+ getHibernateTemplate().execute(new HibernateCallback() {\r
+ public Object doInHibernate(Session session)\r
+ throws HibernateException, SQLException {\r
+ session.refresh(ttrc);\r
+ TreeTestResult ttr = (TreeTestResult) session.get(\r
+ TreeTestResult.class, resultUuid);\r
+ ttrc.getResults().add(ttr);\r
+ session.update(ttrc);\r
+ return ttrc;\r
+ }\r
+ });\r
+ }\r
+\r
+ public void removeResultFromCollection(final TreeTestResultCollection ttrc,\r
+ final String resultUuid) {\r
+ getHibernateTemplate().execute(new HibernateCallback() {\r
+ public Object doInHibernate(Session session)\r
+ throws HibernateException, SQLException {\r
+ session.refresh(ttrc);\r
+ TreeTestResult ttr = (TreeTestResult) session.get(\r
+ TreeTestResult.class, resultUuid);\r
+ if (ttrc.getResults().remove(ttr))\r
+ session.update(ttrc);\r
+ return ttrc;\r
+ }\r
+ });\r
+ }\r
+\r
}\r
package org.argeo.slc.hibernate.test.tree;\r
\r
+import java.sql.SQLException;\r
import java.util.Date;\r
import java.util.List;\r
+import java.util.Map;\r
\r
import org.argeo.slc.core.SlcException;\r
+import org.argeo.slc.core.structure.StructureElement;\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.hibernate.HibernateException;\r
+import org.hibernate.Session;\r
+import org.springframework.orm.hibernate3.HibernateCallback;\r
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;\r
\r
/**\r
return list;\r
}\r
\r
- public void close(String id, Date closeDate) {\r
- // TreeTestResult ttr = (TreeTestResult) getHibernateTemplate().load(\r
- // TreeTestResult.class, id);\r
- TreeTestResult ttr = getTestResult(id);\r
- if (ttr != null) {\r
- ttr.setCloseDate(closeDate);\r
- getHibernateTemplate().update(ttr);\r
- } else {\r
- throw new SlcException("Result with id " + id\r
- + " could not be closed because it was not found.");\r
- }\r
+ public void close(final String testResultId, final Date closeDate) {\r
+ getHibernateTemplate().execute(new HibernateCallback() {\r
+\r
+ public Object doInHibernate(Session session)\r
+ throws HibernateException, SQLException {\r
+ TreeTestResult treeTestResult = getTreeTestResult(session,\r
+ testResultId);\r
+ treeTestResult.setCloseDate(closeDate);\r
+ session.update(treeTestResult);\r
+ return treeTestResult;\r
+ }\r
+ });\r
+ }\r
+\r
+ public void addResultPart(final String testResultId, final TreeSPath path,\r
+ final SimpleResultPart resultPart,\r
+ final Map<TreeSPath, StructureElement> relatedElements) {\r
+\r
+ getHibernateTemplate().execute(new HibernateCallback() {\r
+\r
+ public Object doInHibernate(Session session)\r
+ throws HibernateException, SQLException {\r
+ TreeTestResult treeTestResult = getTreeTestResult(session,\r
+ testResultId);\r
+ PartSubList lst = treeTestResult.getResultParts().get(path);\r
+ if (lst == null) {\r
+ lst = new PartSubList();\r
+ treeTestResult.getResultParts().put(path, lst);\r
+ }\r
+ lst.getParts().add(resultPart);\r
+ treeTestResult.getElements().putAll(relatedElements);\r
+\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
+ TreeTestResult.class, testResultId);\r
+ if (treeTestResult == null)\r
+ throw new SlcException("No result with id " + testResultId);\r
+ return treeTestResult;\r
+ }\r
}\r
SlcExecutionDao dao = getBean(SlcExecutionDao.class);\r
\r
SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution();\r
- slcExec.getSteps().add(new SlcExecutionStep("LOG", "A log line"));\r
- slcExec.getSteps().add(new SlcExecutionStep("LOG", "Two log\nlines"));\r
+ slcExec.getSteps().add(new SlcExecutionStep("A log line"));\r
+ slcExec.getSteps().add(new SlcExecutionStep("Two log\nlines"));\r
\r
dao.create(slcExec);\r
\r
\r
// slcExecution Creation\r
SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution();\r
- slcExec.getSteps().add(new SlcExecutionStep("LOG", "A log line"));\r
- slcExec.getSteps().add(new SlcExecutionStep("LOG", "Two log\nlines"));\r
+ slcExec.getSteps().add(new SlcExecutionStep("A log line"));\r
+ slcExec.getSteps().add(new SlcExecutionStep("Two log\nlines"));\r
\r
dao.create(slcExec);\r
\r
slcExecRetrieved.getSteps().get(0)\r
.setLogLines(logLineListStep0);\r
slcExecRetrieved.getSteps().add(\r
- new SlcExecutionStep("LOG", "Three \n log \n lines"));\r
+ new SlcExecutionStep("Three \n log \n lines"));\r
return null;\r
}\r
});\r