X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2Ftree%2FTreeTestResultPersister.java;h=12eed249afd5c98650a6ef3e1bbb268817b83fda;hb=02b464f4fceaee1d65c711c868259879b02001b5;hp=db7107f9b6b14b9ae5011ef83da8e32fef3cd237;hpb=90b484c35a563691c0923011bb43e2a881db2d5e;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java index db7107f9b..12eed249a 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java @@ -4,12 +4,14 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.core.structure.SimpleSElement; +import org.argeo.slc.core.structure.StructureElement; import org.argeo.slc.core.structure.StructureRegistry; import org.argeo.slc.core.structure.tree.TreeSPath; import org.argeo.slc.core.structure.tree.TreeSRegistry; import org.argeo.slc.dao.structure.tree.TreeSPathDao; import org.argeo.slc.dao.structure.tree.TreeSRegistryDao; import org.argeo.slc.dao.test.TestResultDao; +import org.argeo.slc.dao.test.tree.TreeTestResultDao; /** * Listener persisting tree-based results. @@ -19,21 +21,29 @@ import org.argeo.slc.dao.test.TestResultDao; public class TreeTestResultPersister extends AsynchronousTreeTestResultListener { private static Log log = LogFactory.getLog(TreeTestResultPersister.class); - private TestResultDao testResultDao; + private TreeTestResultDao testResultDao; private TreeSPathDao treeSPathDao; private TreeSRegistryDao treeSRegistryDao; @Override protected void resultPartAdded(PartStruct partStruct) { try { - TreeTestResult persistedResult = (TreeTestResult) testResultDao + TreeTestResult persistedResult = testResultDao .getTestResult(partStruct.resultId); - + + if(persistedResult==null){ + testResultDao.create(partStruct.result); + } + else{ + testResultDao.update(partStruct.result); + } +/* TreeSPath path = treeSPathDao.getOrCreate(partStruct.path); - StructureRegistry localRegistry = partStruct.result.getRegistry(); + StructureRegistry localRegistry = partStruct.result + .getRegistry(); TreeSRegistry registry = getOrCreateTreeSRegistry(path); - syncPath(registry, localRegistry, path); + treeSRegistryDao.syncPath(registry, localRegistry, path); if (persistedResult == null) { persistedResult = new TreeTestResult(); @@ -61,7 +71,7 @@ public class TreeTestResultPersister extends AsynchronousTreeTestResultListener log.trace("Part: " + partStruct.part); } testResultDao.update(persistedResult); - } + }*/ } catch (Exception e) { log.error("Could not persist part for result #" + partStruct.resultId, e); @@ -86,7 +96,6 @@ public class TreeTestResultPersister extends AsynchronousTreeTestResultListener TreeSRegistry registry = treeSRegistryDao.getActiveTreeSRegistry(); if (registry == null) { registry = new TreeSRegistry(); - TreeSPath root = treeSPathDao.getOrCreate(path.getRoot()); registry.setStatus(TreeSRegistry.STATUS_ACTIVE); treeSRegistryDao.create(registry); return treeSRegistryDao.getActiveTreeSRegistry(); @@ -96,7 +105,7 @@ public class TreeTestResultPersister extends AsynchronousTreeTestResultListener } /** Sets the DAO to use in order to persist the results. */ - public void setTestResultDao(TestResultDao testResultDao) { + public void setTestResultDao(TreeTestResultDao testResultDao) { this.testResultDao = testResultDao; } @@ -110,21 +119,4 @@ public class TreeTestResultPersister extends AsynchronousTreeTestResultListener this.treeSRegistryDao = treeSRegistryDao; } - private void syncPath(TreeSRegistry registry, - StructureRegistry localRegistry, TreeSPath path) { - if (path.getParent() != null) { - TreeSPath parent = treeSPathDao.getOrCreate(path.getParent()); - syncPath(registry, localRegistry, parent); - } - - if (registry.getElement(path) == null) { - if (localRegistry != null) { - registry.register(path, localRegistry.getElement(path)); - } else { - registry.register(path, new SimpleSElement(path.getName())); - } - treeSRegistryDao.update(registry); - } - - } }