]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java
Simplify TreeSPath
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / core / test / tree / TreeTestResultPersister.java
index ca92b49084e9f045fcc5ed824e2d1b0987a2b7d5..d1679f5ac66616c6905032ceb933e7fc65169c77 100644 (file)
@@ -4,12 +4,14 @@ import org.apache.commons.logging.Log;
 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
@@ -19,59 +21,59 @@ import org.argeo.slc.dao.test.TestResultDao;
 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
@@ -79,24 +81,23 @@ public class TreeTestResultPersister extends AsynchronousTreeTestResultListener
                }\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
@@ -110,21 +111,4 @@ public class TreeTestResultPersister extends AsynchronousTreeTestResultListener
                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