]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/main/java/org/argeo/slc/ant/SAwareArg.java
Introduce active paths
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / ant / SAwareArg.java
1 package org.argeo.slc.ant;
2
3 import org.argeo.slc.ant.spring.AbstractSpringArg;
4 import org.argeo.slc.core.structure.StructureRegistry;
5 import org.argeo.slc.core.structure.tree.TreeSAware;
6 import org.argeo.slc.core.structure.tree.TreeSElement;
7
8 public abstract class SAwareArg extends AbstractSpringArg {
9 private TreeSAware parentSAware;
10
11 @Override
12 protected Object getBeanInstance() {
13 Object obj = super.getBeanInstance();
14
15 if (obj instanceof TreeSAware && parentSAware != null) {
16 TreeSAware sAware = (TreeSAware) obj;
17 TreeSElement parentElement = (TreeSElement) parentSAware
18 .getElement();
19 String name = getBean() + parentElement.getChildren().size();
20 TreeSElement element = parentElement.createChild(name,
21 getDescription() != null ? getDescription()
22 : "<no bean desc>");
23 sAware.setElement(element);
24
25 parentSAware.addChild(sAware);
26 StructureRegistry registry = (StructureRegistry) getProject()
27 .getReference(SlcProjectHelper.REF_STRUCTURE_REGISTRY);
28 registry.register(sAware);
29 }
30 return obj;
31 }
32
33 public void setParentSAware(TreeSAware parentSAware) {
34 this.parentSAware = parentSAware;
35 }
36
37 }