import java.util.ArrayList; import java.util.Random; public class CompanySimulator { private int currentTime; private ArrayList employees; private void initCompany() { String [] names = { "Leon Mcdonald", "Frankie Johnson", "Todd Rosenthal", "Mauricio Curran", "Randy Feinstein", "Donald Munoz", "Bonnie Barnhardt", "Gary Foley", "Brittney Wilson", "Lyndsay Loomis", "Madge Cartwright", "Stella Coan"}; employees = new ArrayList(); final int numOfManagers = 3; final int numOfEmployeesPerManager = 3; for(int i = 0; i < numOfManagers; ++i) employees.add(new Manager(names[i], i, -1)); for(int i = numOfManagers; i < names.length; ++i) { int mID = (i - numOfManagers) / numOfEmployeesPerManager; employees.add(new Engineer(names[i], i, mID)); } /* int id = 0; int managerID = 1; for (int i = 0; i < 3; i++) { employees.add(new Manager(names[id], id, managerID)); // we assume that all managers have a common boss that is not referenced. id += 1; for (int j = 0; j < 2; j++) { employees.add(new Engineer(names[id], id, managerID)); id+=1; } managerID +=1; } */ } public void run(int runTime) { initCompany(); Random timeGen = new Random(); currentTime = 0; while (currentTime <= runTime) { int scheduledTime = timeGen.nextInt(10) + 1; currentTime += scheduledTime; System.out.println("Current Time: " + currentTime); performWork(); System.out.println("\n"); } } private void performWork() { for (Employee emp : employees) { if (!emp.work()){ System.out.println(emp + " Caused a crisis!"); manageCrisis(emp); } } } private void manageCrisis(Employee emp) { //TODO Implement CompanySimulator.manageCrisis } /** * @param args */ public static void main(String[] args) { CompanySimulator sim = new CompanySimulator(); sim.run(100); } }