You can write a library to do this and also have break/continue control and parallel processing if needed: http://www.artima.com/weblogs/viewpost.jsp?thread=240412 -- Howard.