-import javax.swing.*;
+import java.util.Comparator;
-public class Person extends JPanel implements Comparable<Person> {
+public class Person implements Comparator<Person> {
private Firstname firstname;
private Origin origin;
private Size size;
private Weight weight;
private Eye eye;
+ private Integer distanceFromReference;
- Person(Firstname firstname) {
- setFirstname(firstname);
+ Person() {
+ setFirstname(new Firstname());
+ setOrigin(new Origin());
+ setPersonSize(new Size());
+ setWeight(new Weight());
+ setEye(new Eye());
+ setDistanceFromReference(0);
+ }
+
+ Person(String firstname, String country, Integer size, Integer weight, String colorEye) {
+ setFirstname(new Firstname(firstname));
+ setOrigin(new Origin(country));
+ setPersonSize(new Size(size));
+ setWeight(new Weight(weight));
+ setEye(new Eye(colorEye));
+ setDistanceFromReference(0);
}
public void setFirstname(Firstname firstname) {
return eye;
}
+ public void setDistanceFromReference(Integer distanceFromReference) {
+ this.distanceFromReference = distanceFromReference;
+ }
+
+ public Integer getDistanceFromReference() {
+ return distanceFromReference;
+ }
+
+ @Override
+ 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 compareTo(Person person) {
- return 0;
+ public int compare(Person p1, Person p2) {
+ return p1.getDistanceFromReference().compareTo(p2.getDistanceFromReference());
}
}