public List rebuildMenus(MenuItem menuItem, int checkNavigationContext, SessionInfo info, HttpServletRequest request, String referer) {
List availableMenus = new ArrayList();
for (Iterator i = menuItem == null ? menus.iterator() : menuItem.availableChildren(checkNavigationContext, info, request).iterator(); i.hasNext();) {
MenuItem it = (MenuItem) i.next();
if (it.isAvailable(checkNavigationContext, info, request)) {
AvailableMenuItem nm = createAvailableMenuItem(it, null, request, referer, checkNavigationContext, info);
if (it.isLeaf() || (!it.isLeaf() && !nm.isEmpty())) {
availableMenus.add(nm);
}
}
}
Collections.sort(availableMenus);