Hi,
I'm trying to write a method in java that takes a root target and
then walks down the task tree until it comes to the desired object,
but don't seem to find the api to do this. I sort of got it to work
in Ant 1.6.2 but wasn't really happy with the results as I still
don't fully understand what I've written:
However I need to use Ant 1.5.2 which is missing two crucial methods:
RuntimeConfigurableWrapper.getChildren and
RuntimeConfigurable.getProxy() - is there anything I should be using
in it's place? Is my strategy the right one?
I have a hunch that I'm doing the wrong thing as no tree should be
this difficult to walk as i seem to have made it.
Many Thanks
- AW
/**
* Recursively searches the given task until a match is
found for the given path.
* @param searchTask
* @param pathComponents
* @param pathIndex
* @return
*/
private Object findInTask(Task searchTask, String[]
pathComponents, int pathIndex) {
Object resultObj;
boolean morePathComponents = pathIndex <
pathComponents.length;
if (morePathComponents) {
resultObj = null;
Enumeration children =
searchTask.getRuntimeConfigurableWrapper().getChildren();
search:
while (children.hasMoreElements()) {
RuntimeConfigurable child =
(RuntimeConfigurable) children.nextElement();
if (child.getElementTag().equals(pathComponents
[pathIndex])) {
// we have a match but need to check if
there are more children to recurse
Object childProxy = child.getProxy();
if (childProxy instanceof Task) {
resultObj = findInTask((Task)
childProxy, pathComponents, pathIndex + 1);
} else {
resultObj = childProxy;
}
break search;
}
}
} else {
resultObj = searchTask;
}
return resultObj;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]