private double findSortWeight(int index) { int size = getOrders().size(); if (size == 1) { return 10.0; } if (index == 0) { return getOrders().get(1).getSortWeight() / 2; } if (index == size - 1) { return getOrders().get(index - 1).getSortWeight() + 10.0; } return (getOrders().get(index - 1).getSortWeight() + getOrders().get(index + 1).getSortWeight()) / 2; }
/** * Adds a new order to the existing list of orders. * The <tt>sortWeight</tt> for the order is auto calculated based on the given position. * * @param order the new order to be added * @param position the position where the order has to be added */ public void addOrder(Order order, Integer position) { if (order == null || getOrders().contains(order)) { return; } order.setOrderGroup(this); Integer listIndex = findListIndexForGivenPosition(position); getOrders().add(listIndex, order); if (order.getSortWeight() == null) { order.setSortWeight(findSortWeight(listIndex)); } }
secondOrderWithOrderGroup.getUuid(), savedOrderGroup.getOrders().get(1).getUuid()); assertThat("The first order has a lower sortWeight than the second", savedOrderGroup.getOrders().get(0) .getSortWeight().compareTo(savedOrderGroup.getOrders().get(1).getSortWeight()), is(-1)); .getSortWeight().compareTo(savedOrderGroup.getOrders().get(3).getSortWeight()), is(-1)); assertThat("The second order has a lower sortWeight than the third", savedOrderGroup.getOrders().get(1) .getSortWeight().compareTo(savedOrderGroup.getOrders().get(2).getSortWeight()), is(-1)); assertThat("The first order has a lower sortWeight than the second", savedOrderGroup.getOrders().get(0) .getSortWeight().compareTo(savedOrderGroup.getOrders().get(1).getSortWeight()), is(-1));
secondOrderWithOrderGroup.getUuid(), savedOrderGroup.getOrders().get(1).getUuid()); assertThat("The first order has a lower sortWeight than the second", savedOrderGroup.getOrders().get(0) .getSortWeight().compareTo(savedOrderGroup.getOrders().get(1).getSortWeight()), is(-1)); .getSortWeight().compareTo(savedOrderGroup.getOrders().get(1).getSortWeight()), is(1));
assertNull("The order which doesn't belong to an orderGroup has no sortWeight", savedOrder.getSortWeight()); assertThat("The first order has a lower sortWeight than the second", savedOrderGroup.getOrders().get(0) .getSortWeight().compareTo(savedOrderGroup.getOrders().get(1).getSortWeight()), is(-1));
.getSortWeight().compareTo(secondSavedOrderGroup.getOrders().get(1).getSortWeight()), is(1));
target.setOrderReasonNonCoded(getOrderReasonNonCoded()); target.setOrderGroup(getOrderGroup()); target.setSortWeight(getSortWeight()); target.setFulfillerStatus(getFulfillerStatus()); target.setFulfillerComment(getFulfillerComment());
target.setScheduledDate(getScheduledDate()); target.setOrderGroup(getOrderGroup()); target.setSortWeight(getSortWeight()); target.setFulfillerComment(getFulfillerComment()); target.setFulfillerStatus(getFulfillerStatus());