/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/31 09:43:11*/ /*This class drives: SupplierOrderLineItem*/ package MailOrderSystem.core; import java.util.*; import java.sql.Date; import MailOrderSystem.*; import MailOrderSystem.json.*; public class OrderToSupplier { //Class datatypes private String poNumber; private String dateOrdered; //Class association variables private Supplier supplier; private List supplierOrderLineItems; //Registry of our system. MailOrderSystemRegistry registry = MailOrderSystemRegistry.getInstance(); //Constructor public OrderToSupplier(String aPoNumber, String aDateOrdered, Supplier aSupplier) { poNumber = aPoNumber; dateOrdered = aDateOrdered; supplier = aSupplier; supplier.addOrderToSupplier(this); supplierOrderLineItems = new ArrayList(); registry.add(supplierOrderLineItems); } public boolean setPoNumber(String aPoNumber) { poNumber = aPoNumber; return true; } public boolean setDateOrdered(String aDateOrdered) { dateOrdered = aDateOrdered; return true; } public String getPoNumber() { return poNumber; } public String getDateOrdered() { return dateOrdered; } public Supplier getSupplier() { return supplier; } public List getSupplierOrderLineItems() { return supplierOrderLineItems; } public SupplierOrderLineItem addSupplierOrderLineItem(String aNumberOrdered, String aDateExpected, ProductSource aProductSource, OrderToSupplier aOrderToSupplier) { SupplierOrderLineItem newSupplierOrderLineItem; newSupplierOrderLineItem = new SupplierOrderLineItem(aNumberOrdered, aDateExpected, aProductSource, this); if (!supplierOrderLineItems.contains(newSupplierOrderLineItem)) { registry.add(newSupplierOrderLineItem); supplierOrderLineItems.add(newSupplierOrderLineItem); } return newSupplierOrderLineItem; } public SupplierOrderLineItem addSupplierOrderLineItem( SupplierOrderLineItem aSupplierOrderLineItem) { if (!supplierOrderLineItems.contains(aSupplierOrderLineItem)) supplierOrderLineItems.add(aSupplierOrderLineItem); return aSupplierOrderLineItem; } /* This class does not drive Supplier and therefore sets the association unidirectionally.*/ public void setSupplier(Supplier aSupplier) { supplier = aSupplier; } public void delete() { //Delete all many ends first. for (SupplierOrderLineItem aSupplierOrderLineItem : supplierOrderLineItems) { aSupplierOrderLineItem.delete(); } supplierOrderLineItems.clear(); //Delete all 1 ends. supplier.deleteOrderToSupplier(this); } public void deleteSupplierOrderLineItem( SupplierOrderLineItem aSupplierOrderLineItem) { if (supplierOrderLineItems.contains(aSupplierOrderLineItem)) { supplierOrderLineItems.remove(aSupplierOrderLineItem); //registry.removeObj(registry.getKey(aSupplierOrderLineItem)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (supplierOrderLineItems.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("poNumber", getPoNumber()); obj.put("dateOrdered", getDateOrdered()); return obj; } }