Untitled
unknown
plain_text
3 years ago
3.5 kB
7
Indexable
/**
* PatientRecord.java
* This class contains a Patient records information
* @author
*
*/
public class PatientRecord {
//private instance variables
private int patientID; //field that represents patient ID
private int month; //field that represents month (1-12)
private int day; //field that represents day (1-31)
private int year; //field that represents year (greater than 1900)
private String complaint; //field that represents complaint of the patient
private String treatment; //field that represents treatment to take
//Constructor that accepts 6 arguments
//Throws a BadVisitDateException when passing an invalid month, day or year value
public PatientRecord(int patientID, int month, int day, int year, String complaint, String treatment) throws BadVisitDateException {
//assign patientID value to the instance variable patientID
this.patientID = patientID;
//check if month is valid
if(month < 1 || month > 12) { //month is invalid, throw BadVisitDateException with corresponding message
throw new BadVisitDateException("Month not in range 1-12");
} else { //month is valid
//assign month value to the instance variable month
this.month = month;
}
//check if day is valid
if(day < 1 || day > 31) { //day is invalid, throw BadVisitDateException with corresponding message
throw new BadVisitDateException("Day not in range 1-31");
} else { //day is valid
//assign day value to the instance variable day
this.day = day;
}
//check if year is valid
if(year <= 1900) { //year is invalid, throw BadVisitDateException with corresponding message
throw new BadVisitDateException("Year not greater than 1900");
} else { //year is valid
//assign year value to the instance variable year
this.year = year;
}
//assign complaint value to the instance variable complaint
this.complaint = complaint;
//assign treatment value to the instance variable treatment
this.treatment = treatment;
}
//No logic implementation stated in the requirements, so to be safe,
//I have used the functionality provided by Eclipse IDE
@Override
public int hashCode() {
//Normally, for a hashcode, a primt number is used in the calculation to make
//the hashcode more unique. In this case, it is 31
final int prime = 31;
//Results starts with value 1
int result = 1;
//add the complaint value. If complaint is null, add 0, otherwise, add the hashcode of complaint (String class)
result = prime * result + ((complaint == null) ? 0 : complaint.hashCode());
//add the day value.
result = prime * result + day;
//add the month value.
result = prime * result + month;
//add the patientID value.
result = prime * result + patientID;
//add the treatment value. If treatment is null, add 0, otherwise, add the hashcode of treatment (String class)
result = prime * result + ((treatment == null) ? 0 : treatment.hashCode());
//add the year value.
result = prime * result + year;
//return the calculated hashcode
return result;
}
//Creates a formatted String of the PatientRecord information
public String toString(){
//Concatenate all the patient record information based on the sample output provided
return "Patient:" + patientID + " [" + month + "/" + day + "/"+ year + "] Complaint: " + complaint + " Prescribed: " + treatment;
}
}
Editor is loading...