-import java.util.ArrayList;
import java.util.Comparator;
-public class Person implements Comparable<Person>, Comparator<Person> {
+public class Person implements Comparator<Person> {
private Firstname firstname;
private Origin origin;
private Size size;
private Weight weight;
private Eye eye;
- //List of persons in the database to compare to.
- private ArrayList<Person> personArrayList;
+ private Integer distanceFromReference;
Person() {
setFirstname(new Firstname());
setPersonSize(new Size());
setWeight(new Weight());
setEye(new Eye());
- setPersonArrayList(new ArrayList<>());
+ setDistanceFromReference(0);
}
Person(String firstname, String country, Integer size, Integer weight, String colorEye) {
setPersonSize(new Size(size));
setWeight(new Weight(weight));
setEye(new Eye(colorEye));
- setPersonArrayList(new ArrayList<>());
+ setDistanceFromReference(0);
}
public void setFirstname(Firstname firstname) {
return eye;
}
- public void setPersonArrayList(ArrayList<Person> personArrayList) {
- this.personArrayList = personArrayList;
+ public void setDistanceFromReference(Integer distanceFromReference) {
+ this.distanceFromReference = distanceFromReference;
}
- public ArrayList<Person> getPersonArrayList() {
- return personArrayList;
+ public Integer getDistanceFromReference() {
+ return distanceFromReference;
}
@Override
- public int compareTo(Person person) {
- return this.firstname.compareTo(person.getFirstname()) + this.origin.compareTo(person.getOrigin())
- + this.size.compareTo(person.getPersonSize()) + this.weight.compareTo(person.getWeight())
- + this.eye.compareTo(person.getEye());
+ public String toString() {
+ return "Person{" +
+ "firstname=" + firstname.getFirstname() +
+ ", origin=" + origin.getCountry() +
+ ", size=" + size.getSize() +
+ ", weight=" + weight.getWeight() +
+ ", eye=" + eye.getStrColor() + "(" + this.getEye().getColor().getRed() + "," + this.getEye().getColor().getGreen() + "," + this.getEye().getColor().getBlue() + ")" +
+ ", distanceFromReference=" + this.getDistanceFromReference() +
+ '}';
+ }
+
+ public Integer distanceTo(Person person) {
+ return this.getFirstname().distanceTo(person.getFirstname()) + this.getOrigin().distanceTo(person.getOrigin())
+ + this.getPersonSize().distanceTo(person.getPersonSize()) + this.getWeight().distanceTo(person.getWeight())
+ + this.getEye().distanceTo(person.getEye());
}
@Override
public int compare(Person p1, Person p2) {
- return p1.compareTo(p2);
+ return p1.getDistanceFromReference().compareTo(p2.getDistanceFromReference());
}
}