]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/main/java/org/argeo/slc/core/structure/DefaultSRegistry.java
3d6317078f8af228d1ceff9b7be58603549db918
[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 void register(StructureElement element) {
24 StructureElement treeSElement = element;
25 elements.add(treeSElement);
26 paths.add( treeSElement.getPath());
27 log.debug("Registered " + treeSElement.getPath() + " (desc: "
28 + treeSElement.getDescription() + " position: "
29 + elements.size() + ")");
30 }
31
32 public void register(StructureAware structureAware) {
33 register(structureAware.getElement());
34 structureAware.onRegister(this);
35 }
36
37 public StructureElement getElement(StructurePath path) {
38 int index = paths.indexOf(path);
39 if (index >= 0) {
40 return elements.get(index);
41 } else {// not found
42 return null;
43 }
44 }
45
46 public String getMode() {
47 return mode;
48 }
49
50 public void setMode(String mode) {
51 this.mode = mode;
52 }
53
54 public List<StructurePath> getActivePaths() {
55 return activePaths;
56 }
57
58 public void setActivePaths(List<StructurePath> activePaths) {
59 this.activePaths = activePaths;
60 }
61
62 }