package org.argeo.slc.ant;\r
\r
+import java.util.List;\r
+\r
import org.apache.tools.ant.BuildException;\r
import org.apache.tools.ant.Target;\r
\r
import org.argeo.slc.core.structure.StructurePath;\r
import org.argeo.slc.core.structure.StructureRegistry;\r
import org.argeo.slc.core.structure.tree.DefaultTreeSAware;\r
+import org.argeo.slc.core.structure.tree.TreeSAware;\r
import org.argeo.slc.core.structure.tree.TreeSElement;\r
import org.argeo.slc.core.structure.tree.TreeSPath;\r
\r
public abstract class SAwareTask extends AbstractSpringTask {\r
- protected final DefaultTreeSAware sAware = new DefaultTreeSAware();\r
+ protected final TreeSAware sAware = new DefaultTreeSAware();\r
\r
@Override\r
public void init() throws BuildException {\r
- StructureRegistry registry = (StructureRegistry) getProject()\r
- .getReference(SlcProjectHelper.REF_STRUCTURE_REGISTRY);\r
+ StructureRegistry registry = getRegistry();\r
Target target = getOwningTarget();\r
TreeSElement projectElement = (TreeSElement) registry\r
.getElement(SlcProjectHelper.getProjectPath(getProject()));\r
registry.register(sAware);\r
}\r
\r
+ @Override\r
+ public final void execute() throws BuildException {\r
+ String mode = getRegistry().getMode();\r
+ if (mode.equals(StructureRegistry.ALL)) {\r
+ executeActions(mode);\r
+ } else if (mode.equals(StructureRegistry.ACTIVE)) {\r
+ List<StructurePath> activePaths = getRegistry().getActivePaths();\r
+ if (activePaths.contains(sAware.getElement().getPath())) {\r
+ executeActions(mode);\r
+ }\r
+ }\r
+\r
+ }\r
+\r
+ protected abstract void executeActions(String mode);\r
+\r
+ protected StructureRegistry getRegistry() {\r
+ return (StructureRegistry) getProject().getReference(\r
+ SlcProjectHelper.REF_STRUCTURE_REGISTRY);\r
+ }\r
+\r
protected static StructurePath createTargetPath(Target target) {\r
TreeSPath projectPath = SlcProjectHelper.getProjectPath(target\r
.getProject());\r