Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a Java library (use a package) to support a Company Directory. The Company

ID: 3859912 • Letter: W

Question

Write a Java library (use a package) to support a Company Directory. The Company Directory tracks the following information about a person: First name Last name Telephone number Email address Employee Number (must be unique). Get the person’s role (determined as Executive, Manager, Worker). Employees of the company fall into one of three categories: 1. Executives 2. Managers 3. Workers Each worker is assigned to a specific department. Each manager has a number of direct reports (e.g. directReports = 5). Each executive has a number of managers that report to the executive and a number of indirect reports (workers) that he/she is responsible for (e.g. directReports = 2, indirectReports = 12). The Company Directory should support the following operations: 1. Add Worker 2. Delete Worker (by employee number) 3. Add Executive 4. Delete Executive (by employee number) 5. Add Manager 6. Delete Manager (by employee number) 7. Print all Workers, sorted by “Last Name, First Name” 8. Print all Executives, sorted by “Last Name, First Name” 9. Print all Managers, sorted by “Last Name, First Name” 10. Print the entire company directory, sorted by “Last Name, First Name”. The role of the person (Executive, Manager, Worker) should be displayed for each person. 11. Add a new Worker, Executive, or Manager using an existing Worker, Executive, or Manager object (clone). 12. Assume that you would like to read and write these objects to a database. Executives can be read from a database but cannot be written. Managers can be written to a database but cannot be read from the database. Workers can be read from or written to a database. Make sure your program would be able to support this functionality. You should use override toString(), implement Comparable, and implement Cloneable in your solution to solve this problem effectively.

The first 6 questions have already been solved. Can someone help me finished the rest. thank you !

Explanation / Answer

package company.directory; import java.util.ArrayList; import java.util.List; enum EmployeeType{ EXECUTIVE, MANAGER, WORKER } class Employee { public Employee(String firstName, String lastName, String telNumber, String emailID, int empNumber, EmployeeType employeeType) { this.firstName = firstName; this.lastName = lastName; this.telNumber = telNumber; this.emailID = emailID; this.empNumber = empNumber; this.employeeType = employeeType; } private String firstName; private String lastName; private String telNumber; private String emailID; private int empNumber; private EmployeeType employeeType; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getTelNumber() { return telNumber; } public void setTelNumber(String telNumber) { this.telNumber = telNumber; } public String getEmailID() { return emailID; } public void setEmailID(String emailID) { this.emailID = emailID; } public int getEmpNumber() { return empNumber; } public void setEmpNumber(int empNumber) { this.empNumber = empNumber; } public EmployeeType getEmployeeType() { return employeeType; } public void setEmployeeType(EmployeeType employeeType) { this.employeeType = employeeType; } } class Worker extends Employee{ private String department; public Worker(String firstName, String lastName, String telNumber, String emailID, int empNumber, EmployeeType employeeType, String department) { super(firstName, lastName, telNumber, emailID, empNumber, employeeType); this.department = department; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } } class Manager extends Employee{ private int directReports; public Manager(String firstName, String lastName, String telNumber, String emailID, int empNumber, EmployeeType employeeType, int directReports) { super(firstName, lastName, telNumber, emailID, empNumber, employeeType); this.directReports = directReports; } public int getDirectReports() { return directReports; } public void setDirectReports(int directReports) { this.directReports = directReports; } } class Executive extends Employee{ private List managers; public Executive(String firstName, String lastName, String telNumber, String emailID, int empNumber, EmployeeType employeeType, List managers) { super(firstName, lastName, telNumber, emailID, empNumber, employeeType); this.managers = managers; } public List getManagers() { return managers; } public void setManagers(List managers) { this.managers = managers; } } class Test{ static List employeeList = new ArrayList(); public static void main(String[] args){ //Create workers, executives, managers here //Call methods to add and remove them } static void removeEmployee(int empId){ for (int i = 0; i
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote