Iterator shippingMethods;
Iterator merchantCodes;
Iterator items;
MerchantCalculationResults results = new MerchantCalculationResults();
AnonymousAddress address;
String shipping;
MerchantCodeString code;
Item item;
while (addresses.hasNext()) {
address = (AnonymousAddress) addresses.next();
//compute the taxes if required, using strikeiron tax service
double tax = 0.0d;
if (callback.isCalculateTax()) {
double rate = getTaxRate(address.getPostalCode());
items = callback.getItems().iterator();
while (items.hasNext()) {
item = (Item)items.next();
tax =+ rate * item.getUnitPriceAmount() * item.getQuantity();
}
}
shippingMethods = callback.getShippingMethods().iterator();
while (shippingMethods.hasNext()) {
shipping = (String) shippingMethods.next();
merchantCodes = callback.getMerchantCodes().iterator();
Collection codeResults = new ArrayList();
while (merchantCodes.hasNext()) {
code = (MerchantCodeString) merchantCodes.next();
CouponResult coupon = new CouponResult(false, 0.0f,
merchantConstants.getCurrencyCode(),
code.getCode(), "Not supported in this example.");
codeResults.add(coupon);
}
results.addResult(shipping, address.getId(), true, tax, 0.0d,
merchantConstants.getCurrencyCode(), codeResults);
}
}
return results;
}