+++ /dev/null
-package org.argeo.slc.core.structure.tree;\r
-\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.TreeMap;\r
-import java.util.Vector;\r
-\r
-import org.argeo.slc.core.UnsupportedException;\r
-import org.argeo.slc.core.structure.SimpleSElement;\r
-import org.argeo.slc.core.structure.StructureElement;\r
-import org.argeo.slc.core.structure.StructurePath;\r
-import org.argeo.slc.core.structure.StructureRegistry;\r
-\r
-/** Tree based implementation of a structure registry. */\r
-public class TreeSRegistry implements StructureRegistry {\r
- /** For ORM */\r
- private Long tid;\r
- private TreeSPath root;\r
- private Map<TreeSPath, SimpleSElement> elements = new TreeMap<TreeSPath, SimpleSElement>();\r
-\r
- private String mode = StructureRegistry.ALL;\r
-\r
- private List<StructurePath> activePaths;\r
-\r
- public StructureElement getElement(StructurePath path) {\r
- return elements.get(path);\r
- }\r
-\r
- public List<StructureElement> listElements() {\r
- return new Vector<StructureElement>(elements.values());\r
- }\r
-\r
- public List<StructurePath> listPaths() {\r
- return new Vector<StructurePath>(elements.keySet());\r
- }\r
-\r
- public void register(StructurePath path, StructureElement element) {\r
- final SimpleSElement simpleSElement;\r
- if (element instanceof SimpleSElement) {\r
- simpleSElement = (SimpleSElement) element;\r
- } else {\r
- simpleSElement = new SimpleSElement(element.getDescription());\r
- }\r
-\r
- if (!(path instanceof TreeSPath))\r
- throw new UnsupportedException("path", path);\r
-\r
- elements.put((TreeSPath) path, simpleSElement);\r
-\r
- }\r
-\r
- public String getMode() {\r
- return mode;\r
- }\r
-\r
- public void setMode(String mode) {\r
- this.mode = mode;\r
- }\r
-\r
- public List<StructurePath> getActivePaths() {\r
- return activePaths;\r
- }\r
-\r
- public void setActivePaths(List<StructurePath> activePaths) {\r
- this.activePaths = activePaths;\r
- }\r
-\r
- /** Gets the related root path. */\r
- public TreeSPath getRoot() {\r
- return root;\r
- }\r
-\r
- /** Sets the related root path. */\r
- public void setRoot(TreeSPath root) {\r
- this.root = root;\r
- }\r
-\r
- /** Gets the elements. */\r
- public Map<TreeSPath, SimpleSElement> getElements() {\r
- return elements;\r
- }\r
-\r
- /** Sets the elements (for ORM). */\r
- public void setElements(Map<TreeSPath, SimpleSElement> elements) {\r
- this.elements = elements;\r
- }\r
-\r
- Long getTid() {\r
- return tid;\r
- }\r
-\r
- void setTid(Long tid) {\r
- this.tid = tid;\r
- }\r
-\r
-}\r