/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/31 09:43:11*/ /*This class drives: ProductSource, OrderToSupplier, ReceivedDelivery*/ package MailOrderSystem.core; import java.util.*; import java.sql.Date; import MailOrderSystem.*; import MailOrderSystem.json.*; public class Supplier { //Class datatypes private String id; private String name; private String address; //Class association variables private List productSources; private List orderToSuppliers; private List receivedDeliverys; //Registry of our system. MailOrderSystemRegistry registry = MailOrderSystemRegistry.getInstance(); //Constructor public Supplier(String aId, String aName, String aAddress) { id = aId; name = aName; address = aAddress; productSources = new ArrayList(); registry.add(productSources); orderToSuppliers = new ArrayList(); registry.add(orderToSuppliers); receivedDeliverys = new ArrayList(); registry.add(receivedDeliverys); } public boolean setId(String aId) { id = aId; return true; } public boolean setName(String aName) { name = aName; return true; } public boolean setAddress(String aAddress) { address = aAddress; return true; } public String getId() { return id; } public String getName() { return name; } public String getAddress() { return address; } public List getProductSources() { return productSources; } public List getOrderToSuppliers() { return orderToSuppliers; } public List getReceivedDeliverys() { return receivedDeliverys; } public ProductSource addProductSource(String aSupplierCode, String aAdvertisedCostPerUnit, Product aProduct, Supplier aSupplier) { ProductSource newProductSource; newProductSource = new ProductSource(aSupplierCode, aAdvertisedCostPerUnit, aProduct, this); if (!productSources.contains(newProductSource)) { registry.add(newProductSource); productSources.add(newProductSource); } return newProductSource; } public ProductSource addProductSource(ProductSource aProductSource) { if (!productSources.contains(aProductSource)) productSources.add(aProductSource); return aProductSource; } public OrderToSupplier addOrderToSupplier(String aPoNumber, String aDateOrdered, Supplier aSupplier) { OrderToSupplier newOrderToSupplier; newOrderToSupplier = new OrderToSupplier(aPoNumber, aDateOrdered, this); if (!orderToSuppliers.contains(newOrderToSupplier)) { registry.add(newOrderToSupplier); orderToSuppliers.add(newOrderToSupplier); } return newOrderToSupplier; } public OrderToSupplier addOrderToSupplier(OrderToSupplier aOrderToSupplier) { if (!orderToSuppliers.contains(aOrderToSupplier)) orderToSuppliers.add(aOrderToSupplier); return aOrderToSupplier; } public ReceivedDelivery addReceivedDelivery(String aNumberReceived, String aActualCostPerUnit, Supplier aSupplier) { ReceivedDelivery newReceivedDelivery; newReceivedDelivery = new ReceivedDelivery(aNumberReceived, aActualCostPerUnit, this); if (!receivedDeliverys.contains(newReceivedDelivery)) { registry.add(newReceivedDelivery); receivedDeliverys.add(newReceivedDelivery); } return newReceivedDelivery; } public ReceivedDelivery addReceivedDelivery(ReceivedDelivery aReceivedDelivery) { if (!receivedDeliverys.contains(aReceivedDelivery)) receivedDeliverys.add(aReceivedDelivery); return aReceivedDelivery; } public void delete() { //Delete all many ends first. for (ProductSource aProductSource : productSources) { aProductSource.delete(); } productSources.clear(); //Delete all many ends first. for (OrderToSupplier aOrderToSupplier : orderToSuppliers) { aOrderToSupplier.delete(); } orderToSuppliers.clear(); //Delete all many ends first. for (ReceivedDelivery aReceivedDelivery : receivedDeliverys) { aReceivedDelivery.delete(); } receivedDeliverys.clear(); } public void deleteProductSource(ProductSource aProductSource) { if (productSources.contains(aProductSource)) { productSources.remove(aProductSource); //registry.removeObj(registry.getKey(aProductSource)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteOrderToSupplier(OrderToSupplier aOrderToSupplier) { if (orderToSuppliers.contains(aOrderToSupplier)) { orderToSuppliers.remove(aOrderToSupplier); //registry.removeObj(registry.getKey(aOrderToSupplier)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteReceivedDelivery(ReceivedDelivery aReceivedDelivery) { if (receivedDeliverys.contains(aReceivedDelivery)) { receivedDeliverys.remove(aReceivedDelivery); //registry.removeObj(registry.getKey(aReceivedDelivery)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (productSources.size() == 0 && orderToSuppliers.size() == 0 && receivedDeliverys.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("id", getId()); obj.put("name", getName()); obj.put("address", getAddress()); return obj; } }