/*This code was generated using the UMPLE modeling language! Date of generation: 2008/07/30 13:12:54*/ /*This class drives: RWBMMovement, DeliverOrShipmentBOM, Item*/ package Warehouse.core; import java.util.*; import java.sql.Time; import Warehouse.*; import Warehouse.json.*; public class BoxOrPallet { //Class datatypes private int RFIDTagNumber; private double lengthINmm; private double widthINmm; private double heightINmm; private double weightINkg; private String contentType; //Class association variables private SlotSet slotSet; private List rWBMMovements; private List deliverOrShipmentBOMs; private List items; //Registry of our system. WarehouseRegistry registry = WarehouseRegistry.getInstance(); //Constructor public BoxOrPallet(int aRFIDTagNumber, double aLengthINmm, double aWidthINmm, double aHeightINmm, double aWeightINkg, String aContentType) { RFIDTagNumber = aRFIDTagNumber; lengthINmm = aLengthINmm; widthINmm = aWidthINmm; heightINmm = aHeightINmm; weightINkg = aWeightINkg; contentType = aContentType; rWBMMovements = new ArrayList(); registry.add(rWBMMovements); deliverOrShipmentBOMs = new ArrayList(); registry.add(deliverOrShipmentBOMs); items = new ArrayList(); registry.add(items); } public boolean setRFIDTagNumber(int aRFIDTagNumber) { RFIDTagNumber = aRFIDTagNumber; return true; } public boolean setLengthINmm(double aLengthINmm) { lengthINmm = aLengthINmm; return true; } public boolean setWidthINmm(double aWidthINmm) { widthINmm = aWidthINmm; return true; } public boolean setHeightINmm(double aHeightINmm) { heightINmm = aHeightINmm; return true; } public boolean setWeightINkg(double aWeightINkg) { weightINkg = aWeightINkg; return true; } public boolean setContentType(String aContentType) { contentType = aContentType; return true; } public int getRFIDTagNumber() { return RFIDTagNumber; } public double getLengthINmm() { return lengthINmm; } public double getWidthINmm() { return widthINmm; } public double getHeightINmm() { return heightINmm; } public double getWeightINkg() { return weightINkg; } public String getContentType() { return contentType; } public SlotSet getSlotSet() { return slotSet; } public List getRWBMMovements() { return rWBMMovements; } public List getDeliverOrShipmentBOMs() { return deliverOrShipmentBOMs; } public List getItems() { return items; } public RWBMMovement addRWBMMovement(double aStartTime, double aEndTime, MovementLocation aTo, MovementLocation aFrom, BoxOrPallet aMovedBox) { RWBMMovement newRWBMMovement; newRWBMMovement = new RWBMMovement(aStartTime, aEndTime, aTo, aFrom, aMovedBox); if (!rWBMMovements.contains(newRWBMMovement)) { registry.add(newRWBMMovement); rWBMMovements.add(newRWBMMovement); } return newRWBMMovement; } public RWBMMovement addRWBMMovement(RWBMMovement aRWBMMovement) { if (!rWBMMovements.contains(aRWBMMovement)) rWBMMovements.add(aRWBMMovement); return aRWBMMovement; } public DeliverOrShipmentBOM addDeliverOrShipmentBOM( double aStartTimeLoadOrUnload, double aEndTimeExpected, Truck aTruck) { DeliverOrShipmentBOM newDeliverOrShipmentBOM; newDeliverOrShipmentBOM = new DeliverOrShipmentBOM(aStartTimeLoadOrUnload, aEndTimeExpected, aTruck); if (!deliverOrShipmentBOMs.contains(newDeliverOrShipmentBOM)) { registry.add(newDeliverOrShipmentBOM); deliverOrShipmentBOMs.add(newDeliverOrShipmentBOM); } return newDeliverOrShipmentBOM; } public DeliverOrShipmentBOM addDeliverOrShipmentBOM( DeliverOrShipmentBOM aDeliverOrShipmentBOM) { if (!deliverOrShipmentBOMs.contains(aDeliverOrShipmentBOM)) deliverOrShipmentBOMs.add(aDeliverOrShipmentBOM); return aDeliverOrShipmentBOM; } public Item addItem(double aValue, int aHazardID, int aBreakability, BoxOrPallet aBoxOrPallet) { Item newItem; newItem = new Item(aValue, aHazardID, aBreakability, this); if (!items.contains(newItem)) { registry.add(newItem); items.add(newItem); } return newItem; } public Item addItem(Item aItem) { if (!items.contains(aItem)) items.add(aItem); return aItem; } /* This class does not drive SlotSet and therefore sets the association unidirectionally.*/ public void setSlotSet(SlotSet aSlotSet) { slotSet = aSlotSet; } public void delete() { //Delete all many ends first. for (RWBMMovement aRWBMMovement : rWBMMovements) { aRWBMMovement.delete(); } rWBMMovements.clear(); //Delete all many ends first. for (DeliverOrShipmentBOM aDeliverOrShipmentBOM : deliverOrShipmentBOMs) { aDeliverOrShipmentBOM.delete(); } deliverOrShipmentBOMs.clear(); //Delete all many ends first. for (Item aItem : items) { aItem.delete(); } items.clear(); //Delete all 1 ends. slotSet.deleteBoxOrPallet(this); } public void deleteSlotSet(SlotSet aSlotSet) { if (aSlotSet.equals(slotSet)) { slotSet = null; registry.removeObj(registry.getKey(aSlotSet)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteRWBMMovement(RWBMMovement aRWBMMovement) { if (rWBMMovements.contains(aRWBMMovement)) { rWBMMovements.remove(aRWBMMovement); //registry.removeObj(registry.getKey(aRWBMMovement)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteDeliverOrShipmentBOM( DeliverOrShipmentBOM aDeliverOrShipmentBOM) { if (deliverOrShipmentBOMs.contains(aDeliverOrShipmentBOM)) { deliverOrShipmentBOMs.remove(aDeliverOrShipmentBOM); //registry.removeObj(registry.getKey(aDeliverOrShipmentBOM)); } else //Throw an UmpleException .. to be implemented. { } } public void deleteItem(Item aItem) { if (items.contains(aItem)) { items.remove(aItem); //registry.removeObj(registry.getKey(aItem)); } else //Throw an UmpleException .. to be implemented. { } } public boolean areManyEndsNull() { if (rWBMMovements.size() == 0 && deliverOrShipmentBOMs.size() == 0 && items.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("RFIDTagNumber", getRFIDTagNumber()); obj.put("lengthINmm", getLengthINmm()); obj.put("widthINmm", getWidthINmm()); obj.put("heightINmm", getHeightINmm()); obj.put("weightINkg", getWeightINkg()); obj.put("contentType", getContentType()); return obj; } }