Copyright 2003,2020 Nikolas S. Boyd.
| DepotSafety | |
| allocates drums to available storage space | StorageAllocation |
| applies depot safety policies during storage allocation | |
| StorageAllocation | |
| knows a kind of EPA hazard | Hazard |
| knows how many drums are assigned to a storage building | StorageBuilding |
| allocates drum storage to a storage building | |
| applies drum storage safety policies during allocation | |
| StorageAllocation class | |
| produces prospective storage allocations | |
| balances storage across prospective allocations | |
| Building | |
| knows a building identifier | |
| knows its location within the depot (address) | |
| knows its physical dimensions | Perimeter |
| Perimeter | |
| knows an origin | Point |
| knows a boundary extent (width x depth) | Point |
| can expand itself by some interval | |
| can determine whether it overlaps another perimeter | |
| StorageBuilding extends Building | |
| stores drums containing hazardous chemicals | DrumStorage |
| may only ever store two compatible hazard types | |
| DrumStorage | |
| has a storage license for a specific kind of hazard | StorageLicense |
| knows how many drums it can store (storage limit) | |
| contains some drums | Drum |
| knows how many more drums it can store (remaining capacity) | |
| StorageLicense | |
| applies to a kind of EPA hazard | Hazard |
| applies to a specific storage building | StorageBuilding |
| knows a drum storage limit | |
| StorageLicense class | |
| maintains a license inventory (assets) | |
| provides access to licenses by hazard | |
| Hazard | |
| identifies a kind of EPA hazard | |
| Hazard class | |
| provides access to the registered hazard types: 1, 2, 3 | |
| Drum | |
| knows a drum identifier | |
| contains a hazardous chemical | Chemical |
| knows its measurements | Weight |
| Volume | |
| Chemical | |
| knows its name | |
| knows a formula | |
| knows its EPA hazard classification | Hazard |
| Chemical class | |
| maintains a chemical registry | |
| provides access to chemicals by name | |
| provides access to chemicals by formula | |