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=d1679f5ac66616c6905032ceb933e7fc65169c77;hb=d5d72139e7497923c2b8e2f4d25f366d01425498;hp=ca92b49084e9f045fcc5ed824e2d1b0987a2b7d5;hpb=faf680e212bf3e18837c4f798587856e061273b3;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 ca92b4908..d1679f5ac 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,59 +21,59 @@ 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 - .getTestResult(partStruct.resultId); - - TreeSPath path = treeSPathDao.getOrCreate(partStruct.path); - - StructureRegistry localRegistry = partStruct.result.getRegistry(); - TreeSRegistry registry = getOrCreateTreeSRegistry(path); - syncPath(registry, localRegistry, path); + TreeTestResult persistedResult = testResultDao + .getTestResult(partStruct.uuid); if (persistedResult == null) { - persistedResult = new TreeTestResult(); - persistedResult.setNumericResultId(partStruct.resultId); - PartSubList subList = new PartSubList(); - subList.getParts().add(partStruct.part); - persistedResult.getResultParts().put(path, subList); - - testResultDao.create(persistedResult); + testResultDao.create(partStruct.result); } else { - PartSubList subList = persistedResult.getResultParts() - .get(path); - if (subList == null) { - subList = new PartSubList(); - persistedResult.getResultParts().put(path, subList); - } - persistedResult.getResultParts().get(path).getParts().add( - partStruct.part); - - if (log.isTraceEnabled()) { - log.trace("ResultId:" + persistedResult.getTestResultId()); - log.trace("ResultParts size:" - + persistedResult.getResultParts().size()); - log.trace("Sublist size:" + subList.getParts().size()); - log.trace("Part: " + partStruct.part); - } - testResultDao.update(persistedResult); + testResultDao.update(partStruct.result); } + /* + * TreeSPath path = treeSPathDao.getOrCreate(partStruct.path); + * + * StructureRegistry localRegistry = partStruct.result + * .getRegistry(); TreeSRegistry registry = + * getOrCreateTreeSRegistry(path); + * treeSRegistryDao.syncPath(registry, localRegistry, path); + * + * if (persistedResult == null) { persistedResult = new + * TreeTestResult(); + * persistedResult.setNumericResultId(partStruct.resultId); + * PartSubList subList = new PartSubList(); + * subList.getParts().add(partStruct.part); + * persistedResult.getResultParts().put(path, subList); + * + * testResultDao.create(persistedResult); } else { PartSubList + * subList = persistedResult.getResultParts() .get(path); if + * (subList == null) { subList = new PartSubList(); + * persistedResult.getResultParts().put(path, subList); } + * persistedResult.getResultParts().get(path).getParts().add( + * partStruct.part); + * + * if (log.isTraceEnabled()) { log.trace("ResultId:" + + * persistedResult.getTestResultId()); log.trace("ResultParts size:" + + * persistedResult.getResultParts().size()); log.trace("Sublist + * size:" + subList.getParts().size()); log.trace("Part: " + + * partStruct.part); } testResultDao.update(persistedResult); } + */ } catch (Exception e) { - log.error("Could not persist part for result #" - + partStruct.resultId, e); + log.error("Could not persist part for result #" + partStruct.uuid, + e); } } @Override protected void postClose(TreeTestResult testResult) { TreeTestResult persistedResult = (TreeTestResult) testResultDao - .getTestResult(testResult.getTestResultId()); + .getTestResult(testResult.getUuid()); if (persistedResult != null) { persistedResult.setCloseDate(testResult.getCloseDate()); @@ -79,24 +81,23 @@ public class TreeTestResultPersister extends AsynchronousTreeTestResultListener } if (log.isDebugEnabled()) log.debug("Closed result persister for result " - + testResult.getNumericResultId()); + + testResult.getUuid()); } private TreeSRegistry getOrCreateTreeSRegistry(TreeSPath path) { - TreeSRegistry registry = treeSRegistryDao.getTreeSRegistry(path); + TreeSRegistry registry = treeSRegistryDao.getActiveTreeSRegistry(); if (registry == null) { registry = new TreeSRegistry(); - TreeSPath root = treeSPathDao.getOrCreate(path.getRoot()); - registry.setRoot(root); + registry.setStatus(TreeSRegistry.STATUS_ACTIVE); treeSRegistryDao.create(registry); - return treeSRegistryDao.getTreeSRegistry(path); + return treeSRegistryDao.getActiveTreeSRegistry(); } else { return registry; } } /** 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 +111,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); - } - - } }