package ca.mokhan.comp268; 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 getEligibleCandidates(Candidate[] candidates) { ArrayList eligible = new ArrayList(); for (Candidate candidate : candidates) { if (candidate.isEligible()) eligible.add(candidate); } return eligible; } }