import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import java.util.ArrayList; public class PersonnelOffice { _______________________allEmployees; //Encapsulated array list of employee/manager objects: private ArrayList allEmployees; //Return the total count of employees public int getTotal() { return _______________; //Total count of employees/managers: allEmployees.size(); } //Display a report of all salaries public void report() { for (int i=0;______________________) //Iterate through the array list based on allEmployees.size() System.out.println(_______________________________); //Call the toStringSalaryDetails methods of employees/managers: allEmployees.get(i).toStringSalaryDetails() } //Constructor public PersonnelOffice() { allEmployees = _____________________//Create the array list of employees/managers: new ArrayList(); } //Read employee data from the given file, store in the allEmployees array public void loadEmployeeData(String filepathname) throws FileNotFoundException { _________________________.clear(); //remove any existing employees: allEmployees.clear(); Scanner inFile = new Scanner(new File(filepathname)); while (inFile.hasNext()) { String id=________________________; //Read the ID: inFile.next(); if (id.charAt(0)=='9') //should be manager { String name=______________; //Read a name: inFile.next(); double salary = ________________________; double bonus = ________________________; Manager m; m = new Manager(_______________________); //pass to the constructor: id, name, salary, bonus allEmployees.add(___________); //Add the manager object: m } else { String name=inFile.next(); double salary = inFile.nextDouble(); Employee e; e = new Employee(id, name, salary); allEmployees.add(e); } } inFile.close(); } }