/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/30 10:05:36*/ /*This class drives: Product*/ package MFP.core.green; import java.util.*; import java.sql.Time; import MFP.*; import MFP.core.red.*; import MFP.core.black.*; import MFP.core.blue.*; import MFP.json.*; public class Product { //Class datatypes private String serialNumber; //Class association variables private Supplier supplier; private List products; private Product product; private ProductType productType; private ProductRun productRun; private OrderLineItem orderLineItem; //Registry of our system. MFPRegistry registry = MFPRegistry.getInstance(); //Constructor public Product(String aSerialNumber, Product aProduct, ProductType aProductType, OrderLineItem aOrderLineItem) { serialNumber = aSerialNumber; products = new ArrayList(); registry.add(products); product = aProduct; product.addProduct(this); productType = aProductType; productType.addProduct(this); orderLineItem = aOrderLineItem; orderLineItem.addProduct(this); } public boolean setSerialNumber(String aSerialNumber) { serialNumber = aSerialNumber; return true; } public String getSerialNumber() { return serialNumber; } public Supplier getSupplier() { return supplier; } public List getProducts() { return products; } public Product getProduct() { return product; } public ProductType getProductType() { return productType; } public ProductRun getProductRun() { return productRun; } public OrderLineItem getOrderLineItem() { return orderLineItem; } public Product addProduct(String aSerialNumber, Product aProduct, ProductType aProductType, OrderLineItem aOrderLineItem) { Product newProduct; newProduct = new Product(aSerialNumber, this, aProductType, aOrderLineItem); if (!products.contains(newProduct)) { registry.add(newProduct); products.add(newProduct); } return newProduct; } public Product addProduct(Product aProduct) { if (!products.contains(aProduct)) products.add(aProduct); return aProduct; } /* This class does not drive Supplier and therefore sets the association unidirectionally.*/ public void setSupplier(Supplier aSupplier) { supplier = aSupplier; } /* This class does not drive Product and therefore sets the association unidirectionally.*/ public void setProduct(Product aProduct) { product = aProduct; } /* This class does not drive ProductType and therefore sets the association unidirectionally.*/ public void setProductType(ProductType aProductType) { productType = aProductType; } /* This class does not drive ProductRun and therefore sets the association unidirectionally.*/ public void setProductRun(ProductRun aProductRun) { productRun = aProductRun; } /* This class does not drive OrderLineItem and therefore sets the association unidirectionally.*/ public void setOrderLineItem(OrderLineItem aOrderLineItem) { orderLineItem = aOrderLineItem; } public void delete() { //Delete all many ends first. for (Product aProduct : products) { aProduct.delete(); } products.clear(); //Delete all 1 ends. supplier.deleteProduct(this); product.deleteProduct(this); productType.deleteProduct(this); productRun.deleteProduct(this); orderLineItem.deleteProduct(this); } public void deleteSupplier(Supplier aSupplier) { if (aSupplier.equals(supplier)) { supplier = null; registry.removeObj(registry.getKey(aSupplier)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteProduct(Product aProduct) { if (products.contains(aProduct)) { products.remove(aProduct); //registry.removeObj(registry.getKey(aProduct)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteProductRun(ProductRun aProductRun) { if (aProductRun.equals(productRun)) { productRun = null; registry.removeObj(registry.getKey(aProductRun)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (products.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("serialNumber", getSerialNumber()); return obj; } }