/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/31 09:37:17*/ /*This class drives: ShipmentLineItem*/ package ClientOrder.core; import java.sql.Date; import java.util.*; import ClientOrder.*; import ClientOrder.json.*; public class ClientOrderLineItem { //Class datatypes private String numberOrdered; private String pricePerUnitCharged; //Class association variables private OrderFromClient orderFromClient; private List shipmentLineItems; private Product product; //Registry of our system. ClientOrderRegistry registry = ClientOrderRegistry.getInstance(); //Constructor public ClientOrderLineItem(String aNumberOrdered, String aPricePerUnitCharged, OrderFromClient aOrderFromClient, Product aProduct) { numberOrdered = aNumberOrdered; pricePerUnitCharged = aPricePerUnitCharged; orderFromClient = aOrderFromClient; orderFromClient.addClientOrderLineItem(this); shipmentLineItems = new ArrayList(); registry.add(shipmentLineItems); product = aProduct; product.addClientOrderLineItem(this); } public boolean setNumberOrdered(String aNumberOrdered) { numberOrdered = aNumberOrdered; return true; } public boolean setPricePerUnitCharged(String aPricePerUnitCharged) { pricePerUnitCharged = aPricePerUnitCharged; return true; } public String getNumberOrdered() { return numberOrdered; } public String getPricePerUnitCharged() { return pricePerUnitCharged; } public OrderFromClient getOrderFromClient() { return orderFromClient; } public List getShipmentLineItems() { return shipmentLineItems; } public Product getProduct() { return product; } public ShipmentLineItem addShipmentLineItem(String aNumShipped, ClientOrderLineItem aClientOrderLineItem, ShipmentToClient aShipmentToClient) { ShipmentLineItem newShipmentLineItem; newShipmentLineItem = new ShipmentLineItem(aNumShipped, this, aShipmentToClient); if (!shipmentLineItems.contains(newShipmentLineItem)) { registry.add(newShipmentLineItem); shipmentLineItems.add(newShipmentLineItem); } return newShipmentLineItem; } public ShipmentLineItem addShipmentLineItem(ShipmentLineItem aShipmentLineItem) { if (!shipmentLineItems.contains(aShipmentLineItem)) shipmentLineItems.add(aShipmentLineItem); return aShipmentLineItem; } /* This class does not drive OrderFromClient and therefore sets the association unidirectionally.*/ public void setOrderFromClient(OrderFromClient aOrderFromClient) { orderFromClient = aOrderFromClient; } /* This class does not drive Product and therefore sets the association unidirectionally.*/ public void setProduct(Product aProduct) { product = aProduct; } public void delete() { //Delete all many ends first. for (ShipmentLineItem aShipmentLineItem : shipmentLineItems) { aShipmentLineItem.delete(); } shipmentLineItems.clear(); //Delete all 1 ends. orderFromClient.deleteClientOrderLineItem(this); product.deleteClientOrderLineItem(this); } public void deleteShipmentLineItem(ShipmentLineItem aShipmentLineItem) { if (shipmentLineItems.contains(aShipmentLineItem)) { shipmentLineItems.remove(aShipmentLineItem); //registry.removeObj(registry.getKey(aShipmentLineItem)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (shipmentLineItems.size() == 0) { return true; } else return false; } /*********************************** * Returns the attribute list along with the * class ID in JSON format. ***********************************/ public JSONObject getAttributes() throws JSONException { JSONObject obj = new JSONObject(); obj.put("CLASS_ID", registry.getKey(this)); obj.put("numberOrdered", getNumberOrdered()); obj.put("pricePerUnitCharged", getPricePerUnitCharged()); return obj; } }