X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fant%2Fstructure%2FSAwareTask.java;h=d248a38705378bfa318781385bf1a5400362e48d;hb=74ca4f4b824e8fa9ad8118bf1649031777f0941c;hp=9db63f141dcc4437c2ba481466f8a41b8c0e2a74;hpb=7b4d35882e5a3843381d19c909d62077a924509b;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/structure/SAwareTask.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/structure/SAwareTask.java index 9db63f141..d248a3870 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/structure/SAwareTask.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/structure/SAwareTask.java @@ -17,8 +17,7 @@ import org.argeo.slc.core.structure.StructureRegistry; import org.argeo.slc.core.structure.tree.TreeSPath; /** Ant task that can be registered within a structure. */ -public abstract class SAwareTask extends AbstractSpringTask implements - StructureElement { +public abstract class SAwareTask extends AbstractSpringTask { private String path; private TreeSPath treeSPath; private final List sAwareArgs = new Vector(); @@ -66,14 +65,21 @@ public abstract class SAwareTask extends AbstractSpringTask implements treeSPath = taskPath; } else { - treeSPath = TreeSPath.parseToCreatePath(path); + treeSPath = new TreeSPath(path); } - if (structureElementArg != null) - getRegistry().register(treeSPath, - structureElementArg.getStructureElement()); - else - getRegistry().register(treeSPath, this); + if (getRegistry().getElement(treeSPath) == null) { + // No structure element registered. + if (structureElementArg != null) { + getRegistry().register(treeSPath, + structureElementArg.getStructureElement()); + } else { + if (getDescription() != null) { + getRegistry().register(treeSPath, + new SimpleSElement(getDescription())); + } + } + } // notify registered args for (AbstractSpringArg arg : sAwareArgs) {