while (localIter.hasNext()) {
ShoppingCartItem item = (ShoppingCartItem) localIter.next();
if (quantityToKeep.compareTo(item.getQuantity()) >= 0) {
// quantityToKeep sufficient to keep it all... just reduce quantityToKeep and move on
quantityToKeep = quantityToKeep.subtract(item.getQuantity());
} else {
// there is more in this than we want to keep, so reduce the quantity, or remove altogether...
if (quantityToKeep.compareTo(BigDecimal.ZERO) == 0) {
// nothing left to keep, just remove it...
quantityRemoved = quantityRemoved.add(item.getQuantity());