From 13dcc0bb300749bc5e1d55967982b10da9361da6 Mon Sep 17 00:00:00 2001 From: AmulyaBoddu8 <117228914+AmulyaBoddu8@users.noreply.github.com> Date: Fri, 4 Nov 2022 09:32:08 -0700 Subject: [PATCH] Update Organization.java --- .../aa/act/interview/org/Organization.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/java/com/aa/act/interview/org/Organization.java b/java/com/aa/act/interview/org/Organization.java index 5060509..26298ce 100644 --- a/java/com/aa/act/interview/org/Organization.java +++ b/java/com/aa/act/interview/org/Organization.java @@ -5,6 +5,7 @@ public abstract class Organization { private Position root; + private static int employeeNumber; public Organization() { root = createOrganization(); @@ -21,9 +22,27 @@ public Organization() { */ public Optional hire(Name person, String title) { //your code here - return Optional.empty(); + //return Optional.empty(); + addEmployee(root, person, title); + displayEmployeeDetails(root, person, title); + return Optional.of(root); } + private void addEmployee(Position position, Name person, String title) { + if (position.getTitle().equals(title)) { + position.setEmployee(Optional.of(new Employee(++employeeNumber, new Name(person.getFirst(), person.getLast())))); + } + + } + + private void displayEmployeeDetails(Position pos, Name person, String title) { + for (Position p : pos.getDirectReports()) { + addEmployee(p, person, title); + displayEmployeeDetails(p, person, title); + + } + } + @Override public String toString() { return printOrganization(root, "");