\r
TreeSPath path = treeSPathDao.getOrCreate(partStruct.path);\r
\r
+ StructureRegistry localRegistry = partStruct.result.getRegistry();\r
TreeSRegistry registry = getOrCreateTreeSRegistry(path);\r
- if (registry.getElement(path) == null) {\r
- StructureRegistry localRegistry = partStruct.result\r
- .getRegistry();\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
+ syncPath(registry, localRegistry, path);\r
\r
if (persistedResult == null) {\r
persistedResult = new TreeTestResult();\r
this.treeSRegistryDao = treeSRegistryDao;\r
}\r
\r
+ private void syncPath(TreeSRegistry registry,\r
+ StructureRegistry localRegistry, TreeSPath path) {\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
+ if (path.getParent() != null) {\r
+ TreeSPath parent = treeSPathDao.getOrCreate(path.getParent());\r
+ syncPath(registry, localRegistry, parent);\r
+ }\r
+ }\r
}\r