@Override
 public boolean containsItem(String itemId) {
   List<MenuItem> items = menu.getItems();
   if (items != null) {
     for (MenuItem submenuItem : items) {
       if (submenuItem.getId().equals(itemId)) return true;
     }
   }
   return false;
 }
 @Override
 public MolgenisUiMenuItem getActiveItem() {
   List<MenuItem> items = menu.getItems();
   if (items != null) {
     for (MenuItem submenuItem : items) {
       return new MenuItemToMolgenisUiMenuItemAdapter(submenuItem);
     }
   }
   return null;
 }
  private void createMenuParentMapRec(
      MenuItem menu, MenuItem parentMenu, MenuItem stopMenu, Map<String, MenuItem> breadcrumbMap) {
    breadcrumbMap.put(menu.getId(), parentMenu);
    if (menu.getId().equals(stopMenu.getId())) return;

    for (MenuItem menuItem : menu.getItems()) {
      if (menuItem.getType() == MenuItemType.MENU) {
        createMenuParentMapRec(menuItem, menu, stopMenu, breadcrumbMap);
      }
    }
  }
 @Override
 public List<MolgenisUiMenuItem> getItems() {
   List<MenuItem> items = menu.getItems();
   return items != null
       ? Lists.newArrayList(
           Iterables.transform(
               items,
               new Function<MenuItem, MolgenisUiMenuItem>() {
                 @Override
                 public MolgenisUiMenuItem apply(MenuItem menuItem) {
                   if (menuItem.getType() == MenuItemType.PLUGIN)
                     return new MenuItemToMolgenisUiMenuItemAdapter(menuItem);
                   else return new MenuItemToMolgenisUiMenuAdapter(menuItem, rootMenu);
                 }
               }))
       : Collections.<MolgenisUiMenuItem>emptyList();
 }