/**
*
*/
package com.github.cbpos1989.examples.collections;
/**
* Class to hold state and behavior for Person object.
*
* @author Colm O'Sullivan
*
*/
public class Person implements Comparable<Person>{
private String name;
private int age;
private String ppsNumber;
public Person(){
this("unknown",-1,"0000000P");
}
public Person(String name, int age, String ppsNumber){
setName(name);
setAge(age);
setPPSNumber(ppsNumber);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPPSNumber() {
return ppsNumber;
}
public void setPPSNumber(String ppsNumber) {
this.ppsNumber = ppsNumber;
}
@Override
public int compareTo(Person p) {
int result = p.getAge() - this.getAge();
if (result == 0 && !this.equals(p)) {
return 1;
}
return result;
}
public boolean equals(Object o){
if(this == o){
return true;
}
if(o instanceof Person){
if(this.ppsNumber.equals(((Person)o).getPPSNumber())){
return true;
}
}
return false;
}
public String toString(){
return "Name: " + getName() + "\nAge: " + getAge() + "\nPPS Number: " + getPPSNumber();
}
}