/*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 MailOrderSystem.*; import MailOrderSystem.json.*; public class ReceivedDelivery { //Class datatypes private String numberReceived; private String actualCostPerUnit; //Class association variables private Supplier supplier; private List receivedLineItems; //Registry of our system. MailOrderSystemRegistry registry = MailOrderSystemRegistry.getInstance(); //Constructor public ReceivedDelivery(String aNumberReceived, String aActualCostPerUnit, Supplier aSupplier) { numberReceived = aNumberReceived; actualCostPerUnit = aActualCostPerUnit; supplier = aSupplier; supplier.addReceivedDelivery(this); receivedLineItems = new ArrayList(); registry.add(receivedLineItems); } public boolean setNumberReceived(String aNumberReceived) { numberReceived = aNumberReceived; return true; } public boolean setActualCostPerUnit(String aActualCostPerUnit) { actualCostPerUnit = aActualCostPerUnit; return true; } public String getNumberReceived() { return numberReceived; } public String getActualCostPerUnit() { return actualCostPerUnit; } public Supplier getSupplier() { return supplier; } public List getReceivedLineItems() { return receivedLineItems; } public ReceivedLineItem addReceivedLineItem(String aNumberReceived, String aActualCostPerUnit, ReceivedDelivery aReceivedDelivery, SupplierOrderLineItem aSupplierOrderLineItem) { ReceivedLineItem newReceivedLineItem; newReceivedLineItem = new ReceivedLineItem(aNumberReceived, aActualCostPerUnit, this, aSupplierOrderLineItem); 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 Supplier and therefore sets the association unidirectionally.*/ public void setSupplier(Supplier aSupplier) { supplier = aSupplier; } public void delete() { //Delete all many ends first. for (ReceivedLineItem aReceivedLineItem : receivedLineItems) { aReceivedLineItem.delete(); } receivedLineItems.clear(); //Delete all 1 ends. supplier.deleteReceivedDelivery(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("numberReceived", getNumberReceived()); obj.put("actualCostPerUnit", getActualCostPerUnit()); return obj; } }