// construct general node query criteria
Criteria filter = new Criteria();
filter.addEqualTo("parent", folderImpl.getId());
// remove folders first: depth first recursion
QueryByCriteria query = QueryFactory.newQuery(FolderImpl.class, filter);
Collection folders = getPersistenceBrokerTemplate().getCollectionByQuery(query);
if (folders != null)
{
Iterator foldersIter = folders.iterator();
while (foldersIter.hasNext())