/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/31 09:43:11*/ /*This class drives: ReceivedLineItem*/ package MailOrderSystem.core; import java.util.*; import java.sql.Date; import MailOrderSystem.*; import MailOrderSystem.json.*; public class SupplierOrderLineItem { //Class datatypes private String numberOrdered; private String dateExpected; //Class association variables private ProductSource productSource; private List receivedLineItems; private OrderToSupplier orderToSupplier; //Registry of our system. MailOrderSystemRegistry registry = MailOrderSystemRegistry.getInstance(); //Constructor public SupplierOrderLineItem(String aNumberOrdered, String aDateExpected, ProductSource aProductSource, OrderToSupplier aOrderToSupplier) { numberOrdered = aNumberOrdered; dateExpected = aDateExpected; productSource = aProductSource; productSource.addSupplierOrderLineItem(this); receivedLineItems = new ArrayList(); registry.add(receivedLineItems); orderToSupplier = aOrderToSupplier; orderToSupplier.addSupplierOrderLineItem(this); } public boolean setNumberOrdered(String aNumberOrdered) { numberOrdered = aNumberOrdered; return true; } public boolean setDateExpected(String aDateExpected) { dateExpected = aDateExpected; return true; } public String getNumberOrdered() { return numberOrdered; } public String getDateExpected() { return dateExpected; } public ProductSource getProductSource() { return productSource; } public List getReceivedLineItems() { return receivedLineItems; } public OrderToSupplier getOrderToSupplier() { return orderToSupplier; } public ReceivedLineItem addReceivedLineItem(String aNumberReceived, String aActualCostPerUnit, ReceivedDelivery aReceivedDelivery, SupplierOrderLineItem aSupplierOrderLineItem) { ReceivedLineItem newReceivedLineItem; newReceivedLineItem = new ReceivedLineItem(aNumberReceived, aActualCostPerUnit, aReceivedDelivery, this); if (!receivedLineItems.contains(newReceivedLineItem)) { registry.add(newReceivedLineItem); receivedLineItems.add(newReceivedLineItem); } return newReceivedLineItem; } public ReceivedLineItem addReceivedLineItem(ReceivedLineItem aReceivedLineItem) { if (!receivedLineItems.contains(aReceivedLineItem)) receivedLineItems.add(aReceivedLineItem); return aReceivedLineItem; } /* This class does not drive ProductSource and therefore sets the association unidirectionally.*/ public void setProductSource(ProductSource aProductSource) { productSource = aProductSource; } /* This class does not drive OrderToSupplier and therefore sets the association unidirectionally.*/ public void setOrderToSupplier(OrderToSupplier aOrderToSupplier) { orderToSupplier = aOrderToSupplier; } public void delete() { //Delete all many ends first. for (ReceivedLineItem aReceivedLineItem : receivedLineItems) { aReceivedLineItem.delete(); } receivedLineItems.clear(); //Delete all 1 ends. productSource.deleteSupplierOrderLineItem(this); orderToSupplier.deleteSupplierOrderLineItem(this); } public void deleteReceivedLineItem(ReceivedLineItem aReceivedLineItem) { if (receivedLineItems.contains(aReceivedLineItem)) { receivedLineItems.remove(aReceivedLineItem); //registry.removeObj(registry.getKey(aReceivedLineItem)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (receivedLineItems.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("dateExpected", getDateExpected()); return obj; } }