/** * Copyright (c) 2008-2023, MOVES Institute, Naval Postgraduate School (NPS). All rights reserved. * This work is provided under a BSD open-source license, see project license.html and license.txt */ package MV3500Cohort2023MarchJune.projects.Islas; import simkit.SimEntityBase; import simkit.random.RandomVariate; import simkit.random.RandomVariateFactory; /** Model */ public class Customer extends SimEntityBase{ private RandomVariate beefPreference; private RandomVariate porkPreference; private RandomVariate chickenPreference; private RandomVariate eggsPreference; /** Constructor * @param averagePurchaseOfBeef initialization value * @param beefPlusMinus initialization value * @param averagePurchaseOfPork initialization value * @param porkPlusMinus initialization value * @param averagePurchaseOfChicken initialization value * @param chickenPlusMinus initialization value * @param averagePurchaseOfEggs initialization value * @param eggsPlusMinus initialization value */ public Customer(double averagePurchaseOfBeef, double beefPlusMinus, double averagePurchaseOfPork, double porkPlusMinus, double averagePurchaseOfChicken, double chickenPlusMinus, double averagePurchaseOfEggs, double eggsPlusMinus) { this.beefPreference = RandomVariateFactory.getInstance("Normal", averagePurchaseOfBeef, beefPlusMinus); this.porkPreference = RandomVariateFactory.getInstance("Normal", averagePurchaseOfPork, porkPlusMinus); this.chickenPreference = RandomVariateFactory.getInstance("Normal", averagePurchaseOfChicken, chickenPlusMinus); this.eggsPreference = RandomVariateFactory.getInstance("Normal", averagePurchaseOfEggs, eggsPlusMinus); } /** commence simulation run */ public void doRun() { waitDelay("Transaction", 0.0); } /** perform transaction */ public void doTransaction() { double beef = beefPreference.generate(); beef = beef < 0 ? 0 : beef; double pork = porkPreference.generate(); pork = pork < 0 ? 0 : pork; double chicken = chickenPreference.generate(); chicken = chicken < 0 ? 0 : chicken; double eggs = eggsPreference.generate(); eggs = eggs < 0 ? 0 : eggs; waitDelay("Transaction", 0.0, beef, pork, chicken, eggs); waitDelay("Transaction", 7.0); } /** accessor * @return preference RandomVariate */ public RandomVariate getBeefPreference() { return beefPreference; } /** accessor * @return preference RandomVariate */ public RandomVariate getPorkPreference() { return porkPreference; } /** accessor * @return preference RandomVariate */ public RandomVariate getChickenPreference() { return chickenPreference; } /** accessor * @return preference RandomVariate */ public RandomVariate getEggsPreference() { return eggsPreference; } }