Exemplo n.º 1
0
  private void fillSubMenus(List<Menu> menus) {
    List<Menu> parentMenus = menus;
    while (parentMenus != null && parentMenus.size() > 0) {
      List<Menu> newParentMenus = new ArrayList<Menu>();
      for (Menu menuEle : parentMenus) {
        CoreMenuModel exampleCoreMenuEntity = new CoreMenuModel();
        exampleCoreMenuEntity.setParentId(menuEle.getId());
        List<CoreMenuModel> subMenuEntities = coreMenuDao.getModelList(exampleCoreMenuEntity);
        if (subMenuEntities != null && subMenuEntities.size() > 0) {
          List<Menu> subMenus = new ArrayList<Menu>();
          for (CoreMenuModel subMenuEntity : subMenuEntities) {
            CoreMenuModel menuEntityFull = coreMenuDao.getModelById(subMenuEntity.getId());
            if (menuEntityFull != null) {
              Menu tmpMenu = new Menu();
              BeanUtils.copyProperties(menuEntityFull, tmpMenu);
              subMenus.add(tmpMenu);
            }
          }

          menuEle.setSubMenus(subMenus);
          newParentMenus.addAll(subMenus);
        }
      }
      parentMenus = newParentMenus;
    }
  }