]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/main/java/org/argeo/slc/core/structure/DefaultSRegistry.java
ff797a939f41da04c17e8399c30ec4aa07ccce28
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / core / structure / DefaultSRegistry.java
1 package org.argeo.slc.core.structure;
2
3 import java.util.List;
4 import java.util.Vector;
5
6 import org.apache.commons.logging.Log;
7 import org.apache.commons.logging.LogFactory;
8
9 /** Default implementation of a <code>StructureRegistry</code>.*/
10 public class DefaultSRegistry implements StructureRegistry {
11 private static Log log = LogFactory.getLog(DefaultSRegistry.class);
12
13 private List<StructureElement> elements = new Vector<StructureElement>();
14 private List<StructurePath> paths = new Vector<StructurePath>();
15 private String mode = StructureRegistry.ALL;
16
17 private List<StructurePath> activePaths;
18
19 public List<StructureElement> listElements() {
20 return new Vector<StructureElement>(elements);
21 }
22
23 public List<StructurePath> listPaths() {
24 return new Vector<StructurePath>(paths);
25 }
26
27 public void register(StructurePath path,StructureElement element) {
28 StructureElement treeSElement = element;
29 elements.add(treeSElement);
30 paths.add( path);
31 log.debug("Registered " + path + " (desc: '"
32 + treeSElement.getDescription() + "', position: "
33 + elements.size() + ")");
34 }
35
36 // public void register(StructurePath path,StructureAware structureAware) {
37 // register(path,structureAware.getElement());
38 // structureAware.onRegister(this,path);
39 // }
40
41 public StructureElement getElement(StructurePath path) {
42 int index = paths.indexOf(path);
43 if (index >= 0) {
44 return elements.get(index);
45 } else {// not found
46 return null;
47 }
48 }
49
50 public String getMode() {
51 return mode;
52 }
53
54 public void setMode(String mode) {
55 this.mode = mode;
56 }
57
58 public List<StructurePath> getActivePaths() {
59 return activePaths;
60 }
61
62 public void setActivePaths(List<StructurePath> activePaths) {
63 this.activePaths = activePaths;
64 }
65
66 }