import org.apache.commons.logging.LogFactory;\r
\r
import org.argeo.slc.core.structure.SimpleSElement;\r
+import org.argeo.slc.core.structure.StructureElement;\r
import org.argeo.slc.core.structure.StructureRegistry;\r
import org.argeo.slc.core.structure.tree.TreeSPath;\r
import org.argeo.slc.core.structure.tree.TreeSRegistry;\r
import org.argeo.slc.dao.structure.tree.TreeSPathDao;\r
import org.argeo.slc.dao.structure.tree.TreeSRegistryDao;\r
import org.argeo.slc.dao.test.TestResultDao;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
\r
/**\r
* Listener persisting tree-based results.\r
public class TreeTestResultPersister extends AsynchronousTreeTestResultListener {\r
private static Log log = LogFactory.getLog(TreeTestResultPersister.class);\r
\r
- private TestResultDao testResultDao;\r
+ private TreeTestResultDao testResultDao;\r
private TreeSPathDao treeSPathDao;\r
private TreeSRegistryDao treeSRegistryDao;\r
\r
@Override\r
protected void resultPartAdded(PartStruct partStruct) {\r
try {\r
- TreeTestResult persistedResult = (TreeTestResult) testResultDao\r
- .getTestResult(partStruct.resultId);\r
-\r
- TreeSPath path = treeSPathDao.getOrCreate(partStruct.path);\r
-\r
- StructureRegistry localRegistry = partStruct.result.getRegistry();\r
- TreeSRegistry registry = getOrCreateTreeSRegistry(path);\r
- syncPath(registry, localRegistry, path);\r
+ TreeTestResult persistedResult = testResultDao\r
+ .getTestResult(partStruct.uuid);\r
\r
if (persistedResult == null) {\r
- persistedResult = new TreeTestResult();\r
- persistedResult.setNumericResultId(partStruct.resultId);\r
- PartSubList subList = new PartSubList();\r
- subList.getParts().add(partStruct.part);\r
- persistedResult.getResultParts().put(path, subList);\r
-\r
- testResultDao.create(persistedResult);\r
+ testResultDao.create(partStruct.result);\r
} else {\r
- PartSubList subList = persistedResult.getResultParts()\r
- .get(path);\r
- if (subList == null) {\r
- subList = new PartSubList();\r
- persistedResult.getResultParts().put(path, subList);\r
- }\r
- persistedResult.getResultParts().get(path).getParts().add(\r
- partStruct.part);\r
-\r
- if (log.isTraceEnabled()) {\r
- log.trace("ResultId:" + persistedResult.getTestResultId());\r
- log.trace("ResultParts size:"\r
- + persistedResult.getResultParts().size());\r
- log.trace("Sublist size:" + subList.getParts().size());\r
- log.trace("Part: " + partStruct.part);\r
- }\r
- testResultDao.update(persistedResult);\r
+ testResultDao.update(partStruct.result);\r
}\r
+ /*\r
+ * TreeSPath path = treeSPathDao.getOrCreate(partStruct.path);\r
+ * \r
+ * StructureRegistry<TreeSPath> localRegistry = partStruct.result\r
+ * .getRegistry(); TreeSRegistry registry =\r
+ * getOrCreateTreeSRegistry(path);\r
+ * treeSRegistryDao.syncPath(registry, localRegistry, path);\r
+ * \r
+ * if (persistedResult == null) { persistedResult = new\r
+ * TreeTestResult();\r
+ * persistedResult.setNumericResultId(partStruct.resultId);\r
+ * PartSubList subList = new PartSubList();\r
+ * subList.getParts().add(partStruct.part);\r
+ * persistedResult.getResultParts().put(path, subList);\r
+ * \r
+ * testResultDao.create(persistedResult); } else { PartSubList\r
+ * subList = persistedResult.getResultParts() .get(path); if\r
+ * (subList == null) { subList = new PartSubList();\r
+ * persistedResult.getResultParts().put(path, subList); }\r
+ * persistedResult.getResultParts().get(path).getParts().add(\r
+ * partStruct.part);\r
+ * \r
+ * if (log.isTraceEnabled()) { log.trace("ResultId:" +\r
+ * persistedResult.getTestResultId()); log.trace("ResultParts size:" +\r
+ * persistedResult.getResultParts().size()); log.trace("Sublist\r
+ * size:" + subList.getParts().size()); log.trace("Part: " +\r
+ * partStruct.part); } testResultDao.update(persistedResult); }\r
+ */\r
} catch (Exception e) {\r
- log.error("Could not persist part for result #"\r
- + partStruct.resultId, e);\r
+ log.error("Could not persist part for result #" + partStruct.uuid,\r
+ e);\r
}\r
}\r
\r
@Override\r
protected void postClose(TreeTestResult testResult) {\r
TreeTestResult persistedResult = (TreeTestResult) testResultDao\r
- .getTestResult(testResult.getTestResultId());\r
+ .getTestResult(testResult.getUuid());\r
\r
if (persistedResult != null) {\r
persistedResult.setCloseDate(testResult.getCloseDate());\r
}\r
if (log.isDebugEnabled())\r
log.debug("Closed result persister for result "\r
- + testResult.getNumericResultId());\r
+ + testResult.getUuid());\r
}\r
\r
private TreeSRegistry getOrCreateTreeSRegistry(TreeSPath path) {\r
- TreeSRegistry registry = treeSRegistryDao.getTreeSRegistry(path);\r
+ TreeSRegistry registry = treeSRegistryDao.getActiveTreeSRegistry();\r
if (registry == null) {\r
registry = new TreeSRegistry();\r
- TreeSPath root = treeSPathDao.getOrCreate(path.getRoot());\r
- registry.setRoot(root);\r
+ registry.setStatus(TreeSRegistry.STATUS_ACTIVE);\r
treeSRegistryDao.create(registry);\r
- return treeSRegistryDao.getTreeSRegistry(path);\r
+ return treeSRegistryDao.getActiveTreeSRegistry();\r
} else {\r
return registry;\r
}\r
}\r
\r
/** Sets the DAO to use in order to persist the results. */\r
- public void setTestResultDao(TestResultDao testResultDao) {\r
+ public void setTestResultDao(TreeTestResultDao testResultDao) {\r
this.testResultDao = testResultDao;\r
}\r
\r
this.treeSRegistryDao = treeSRegistryDao;\r
}\r
\r
- private void syncPath(TreeSRegistry registry,\r
- StructureRegistry localRegistry, TreeSPath path) {\r
- if (path.getParent() != null) {\r
- TreeSPath parent = treeSPathDao.getOrCreate(path.getParent());\r
- syncPath(registry, localRegistry, parent);\r
- }\r
-\r
- if (registry.getElement(path) == null) {\r
- if (localRegistry != null) {\r
- registry.register(path, localRegistry.getElement(path));\r
- } else {\r
- registry.register(path, new SimpleSElement(path.getName()));\r
- }\r
- treeSRegistryDao.update(registry);\r
- }\r
-\r
- }\r
}\r