From 62544149f607df71599cdc8783ff8a0db06e3387 Mon Sep 17 00:00:00 2001 From: mithuganesan Date: Wed, 12 Apr 2023 20:00:45 -0700 Subject: [PATCH 1/4] Update Organization.java initial commit basic code --- .../aa/act/interview/org/Organization.java | 22 ++++++++++++++++++- 1 file changed, 21 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..061e41c 100644 --- a/java/com/aa/act/interview/org/Organization.java +++ b/java/com/aa/act/interview/org/Organization.java @@ -19,8 +19,28 @@ public Organization() { * @param title * @return the newly filled position or empty if no position has that title */ + public Optional findPosition(Position newPostion, String title) { + Optional newHire = Optional.of(newPosition); + if (newHire.get().getTitle().equals(title)) { + return newHire; + } else { + for (Position pos : newPosition.getDirectReports()) { + newHire = findPosition(pos, title); + if (newHire.isPresent()) { + return newHire; + } + } + } + return Optimal.empty(); + } public Optional hire(Name person, String title) { - //your code here + Optional newPosition = findPosition(root, title); + if (newPosition.isPresent()) { + Position pos = newPosition.get(); + if (!pos.isFilled()) { + newPosition.get().setEmployee(Optional.of(new Employee(person))); + } + } return Optional.empty(); } From 250aaf9cca903c3ddceebe5f0a19e0e7b31753a4 Mon Sep 17 00:00:00 2001 From: mithuganesan Date: Wed, 12 Apr 2023 20:01:56 -0700 Subject: [PATCH 2/4] basic change --- java/com/aa/act/interview/org/Position.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/com/aa/act/interview/org/Position.java b/java/com/aa/act/interview/org/Position.java index e53e5e7..5b65590 100644 --- a/java/com/aa/act/interview/org/Position.java +++ b/java/com/aa/act/interview/org/Position.java @@ -12,6 +12,10 @@ public class Position { private Optional employee; private Set directReports; + public Position() { //default + } + + public Position(String title) { this.title = title; employee = Optional.empty(); From aa7a8a27987879659c0a03546b7797b0952ec29b Mon Sep 17 00:00:00 2001 From: mithuganesan Date: Wed, 12 Apr 2023 20:04:45 -0700 Subject: [PATCH 3/4] basic initial commit --- java/com/aa/act/interview/org/Employee.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java/com/aa/act/interview/org/Employee.java b/java/com/aa/act/interview/org/Employee.java index aa9aba7..6c72bba 100644 --- a/java/com/aa/act/interview/org/Employee.java +++ b/java/com/aa/act/interview/org/Employee.java @@ -4,6 +4,14 @@ public class Employee { private int identifier; private Name name; + + public Employee(){ + } + public Employee( Name name) { + if(name == null) + throw new IllegalArgumentException("name cannot be null"); + this.name = name; + } public Employee(int identifier, Name name) { if(name == null) From feb346bb29dd08ba6f932e6522c68026d55864f9 Mon Sep 17 00:00:00 2001 From: mithuganesan Date: Wed, 12 Apr 2023 20:06:59 -0700 Subject: [PATCH 4/4] basic commit --- java/com/aa/act/interview/org/Name.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/java/com/aa/act/interview/org/Name.java b/java/com/aa/act/interview/org/Name.java index c9caaae..701c433 100644 --- a/java/com/aa/act/interview/org/Name.java +++ b/java/com/aa/act/interview/org/Name.java @@ -13,11 +13,16 @@ public Name(String first, String last) { this.first = first; this.last = last; } - + public void setFirst(String first) { + this.first = first; + } public String getFirst() { return first; } + public void setLast(String last) { + this.last = last; + } public String getLast() { return last; }