@Override public Item getItem(int id) { for (Item i : items) { if (i.getItemID() == id) return i; } return null; }
@Override public String ship_items(Item[] items, Addresses address) throws UnknownAddressFault, UnknownProductFault, IllegalArgumentException { // check if all parameters are valid if (items == null || items.length <= 0) throw new IllegalArgumentException("No items to ship specified"); if (address == null) throw new IllegalArgumentException("Provided address may not be null"); // check if the address is known to the system Addresses storedAddress = DataBackend.getInstance().getAddress(address.getId()); if (storedAddress == null || !storedAddress.equals(address)) throw new UnknownAddressFault("[ShippingService] ship_items: unknown address"); UUID ret = UUID.randomUUID(); String retItems = "[ShippingService] Sending items "; for (Item item : items) { if (item != null) { Product p = item.getProduct(); // is the stored product in the item valid? if (p == null) throw new UnknownProductFault("One of the products to ship is null"); // check if the product is known to the system Product storedProduct = DataBackend.getInstance().getProduct(p.getId()); if (storedProduct == null || !storedProduct.equals(p)) throw new UnknownProductFault("Unknown product to ship"); else // everything worked fine so ship the product // and add an info to the console retItems += "'" + storedProduct.getName() + "', "; } } // remove the last ", " retItems = retItems.substring(0, retItems.length() - 2); retItems += " to"; // create log-output on server-side System.out.println("[ShippingService] " + new Date(System.currentTimeMillis())); System.out.println(retItems); System.out.println( "[ShippingService] " + address.getStreet() + " " + address.getHouse() + ", " + address.getZipCode() + " " + address.getCity()); new ShippingCallbackHelper(ret.toString()); return ret.toString(); }