summaryrefslogtreecommitdiff
path: root/src/Q8/Candidate.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Q8/Candidate.java')
-rw-r--r--src/Q8/Candidate.java75
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;
+ }
+}