Esempio n. 1
0
  @RequestMapping("range")
  @ResponseBody
  public List<ItemPresentation> get(@RequestParam String from, @RequestParam String to) {
    Item item = itemDao.getByNumber(from);
    notNull(item, format("Item `%s` not found", from));
    notNull(itemDao.getByNumber(to), format("Item `%s` not found", to));

    List<ItemPresentation> items = new ArrayList<ItemPresentation>();

    final ItemPresentation itemPresentation = new ItemPresentation(item);
    //        itemPresentation.parents = getParents(item.getNumber());
    items.add(itemPresentation);

    while (!item.getNumber().equals(to)) {
      item = itemDao.get(item.getNext());
      items.add(new ItemPresentation(item));
      if (items.size() > MAXIMUM_RANGE_SIZE) {
        throw new RuntimeException(format("Maximum range size reached (from %s to %s)", from, to));
      }
    }

    return items;
  }