diff options
Diffstat (limited to 'src/Q8/Candidate.java')
| -rw-r--r-- | src/Q8/Candidate.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/Q8/Candidate.java b/src/Q8/Candidate.java new file mode 100644 index 0000000..7df9535 --- /dev/null +++ b/src/Q8/Candidate.java @@ -0,0 +1,75 @@ +package ca.mokhan.assignment1; + +import java.util.ArrayList; + +public class Candidate extends AddressBook { + private double grade = 0.0; + private Communication communication; + private boolean isInnovative; + private double regulatoryCapability; + + public Candidate( + String firstName, + String lastName, + double grade, + String communication, + boolean isInnovative, + double regulatoryCapability) { + super(firstName, "", lastName); + this.grade = grade; + this.setCommunication(communication); + this.isInnovative = isInnovative; + this.regulatoryCapability = regulatoryCapability; + } + + public boolean isInnovative() { + return this.isInnovative; + } + + public double getGrade() { + return this.grade; + } + + public double getRegulation() { + return this.regulatoryCapability; + } + + public String getCommunication() { + return this.communication.toString(); + } + + public void setCommunication(String communication) { + this.communication = Communication.findBy(communication); + } + + public void setGrade(double grade) { + this.grade = grade; + } + + public void setInnovation(boolean innovation) { + this.isInnovative = innovation; + } + + public void setRegulation(double regulatoryCapability) { + this.regulatoryCapability = regulatoryCapability; + } + + public boolean isEligible() { + if (this.grade >= 85.0) { + return this.communication.isAtLeast(Communication.Average) || this.isInnovative(); + } else { + return (this.regulatoryCapability >= 0.5 + && this.communication.isAtLeast(Communication.Average)); + } + } + + public static ArrayList<Candidate> getEligibleCandidates(Candidate[] candidates) { + ArrayList<Candidate> eligible = new ArrayList<Candidate>(); + + for (Candidate candidate : candidates) { + if (candidate.isEligible()) eligible.add(candidate); + } + + return eligible; + } +} |
