void (final UpdatedFiles updatedFiles, final Callback callback) { final FileGroup changedOnServer = updatedFiles.getGroupById(FileGroup.CHANGED_ON_SERVER_ID); if (changedOnServer != null) { final List<FileGroup> children = changedOnServer.getChildren(); for (FileGroup child : children) { if (FileGroup.REMOVED_FROM_REPOSITORY_ID.equals(child.getId())) { iterateGroup(child, callback); } } } final List<FileGroup> groups = updatedFiles.getTopLevelGroups(); for (FileGroup group : groups) { iterateGroup(group, callback); for (FileGroup childGroup : group.getChildren()) { if (! FileGroup.REMOVED_FROM_REPOSITORY_ID.equals(childGroup.getId())) { iterateGroup(childGroup, callback); } } } }