<%@ page contentType="text/plain" %> <% class Delivery { def status, pizzaOrder, deliveryEstimate; def rand Delivery(pizzaOrder) { this.pizzaOrder = pizzaOrder this.status = "Received Order" this.rand = new Random() } void deliver() { if (this.pizzaOrder.getStatus() == "Prepped for Delivery") { // random nbr in range of 2 to 10 this.deliveryEstimate = rand.nextInt(8) + 2 this.status = "Delivering Order"; for (i in 0..deliveryEstimate) { // Deliver pizza } status = "Pizza Delivered."; } else { this.pizzaOrder.prepOrder() this.deliver() } } String getStatus() { return this.status } Integer getDeliveryEstimate() { return this.deliveryEstimate } } class PizzaOrder { def order, address, status; def rand PizzaOrder(order, address) { this.order = order this.address = address this.status = "In Progress" this.rand = new Random() } void cookOrder() { this.status = "Cooking"; def cookTime = rand.nextInt(100001) for (i in 0..cookTime) { // cook order } this.status = "Cooked and ready for prepping"; } void prepOrder() { this.status = "Preparing for Delivering" def prepTime = rand.nextInt(100001) for (i in 0..prepTime) { // prepare for delivery } this.status = "Prepped for Delivery" } String getStatus() { return this.status } } System.out.println("placeOrder called") // Error checking def order = params.order def address = params.address if (!order) { System.out.println("bad order") out << " " response.sendError(response.SC_BAD_REQUEST, "Status: No order was received.") //exit; } else if (!address) { System.out.println("bad address") out << " " response.sendError(response.SC_BAD_REQUEST, "Status: No address was received.") //exit; } else { // Place the order def pizzaOrder = new PizzaOrder(order, address) pizzaOrder.cookOrder() pizzaOrder.prepOrder() // Deliver the order def delivery = new Delivery(pizzaOrder) delivery.deliver() def deliveryTime = delivery.getDeliveryEstimate() out << deliveryTime } %>