5d9d812924ec1daf2c66351c4f90272a397e7bce
[Persons_Comparator.git] / src / Person.java
1 import java.util.Comparator;
2
3 public class Person implements Comparator<Person> {
4 private Firstname firstname;
5 private Origin origin;
6 private Size size;
7 private Weight weight;
8 private Eye eye;
9 private Integer distanceFromReference;
10
11 Person() {
12 setFirstname(new Firstname());
13 setOrigin(new Origin());
14 setPersonSize(new Size());
15 setWeight(new Weight());
16 setEye(new Eye());
17 setDistanceFromReference(0);
18 }
19
20 Person(String firstname, String country, Integer size, Integer weight, String colorEye) {
21 setFirstname(new Firstname(firstname));
22 setOrigin(new Origin(country));
23 setPersonSize(new Size(size));
24 setWeight(new Weight(weight));
25 setEye(new Eye(colorEye));
26 setDistanceFromReference(0);
27 }
28
29 public void setFirstname(Firstname firstname) {
30 this.firstname = firstname;
31 }
32
33 public Firstname getFirstname() {
34 return firstname;
35 }
36
37 public void setOrigin(Origin origin) {
38 this.origin = origin;
39 }
40
41 public Origin getOrigin() {
42 return origin;
43 }
44
45 public void setPersonSize(Size size) {
46 this.size = size;
47 }
48
49 public Size getPersonSize() {
50 return size;
51 }
52
53 public void setWeight(Weight weight) {
54 this.weight = weight;
55 }
56
57 public Weight getWeight() {
58 return weight;
59 }
60
61 public void setEye(Eye eye) {
62 this.eye = eye;
63 }
64
65 public Eye getEye() {
66 return eye;
67 }
68
69 public void setDistanceFromReference(Integer distanceFromReference) {
70 this.distanceFromReference = distanceFromReference;
71 }
72
73 public Integer getDistanceFromReference() {
74 return distanceFromReference;
75 }
76
77 @Override
78 public String toString() {
79 return "Person{" +
80 "firstname=" + firstname.getFirstname() +
81 ", origin=" + origin.getCountry() +
82 ", size=" + size.getSize() +
83 ", weight=" + weight.getWeight() +
84 ", eye=" + eye.getStrColor() + "(" + this.getEye().getColor().getRed() + "," + this.getEye().getColor().getGreen() + "," + this.getEye().getColor().getBlue() + ")" +
85 ", distanceFromReference=" + this.getDistanceFromReference() +
86 '}';
87 }
88
89 public Integer distanceTo(Person person) {
90 return this.getFirstname().distanceTo(person.getFirstname()) + this.getOrigin().distanceTo(person.getOrigin())
91 + this.getPersonSize().distanceTo(person.getPersonSize()) + this.getWeight().distanceTo(person.getWeight())
92 + this.getEye().distanceTo(person.getEye());
93 }
94
95 @Override
96 public int compare(Person p1, Person p2) {
97 return p1.getDistanceFromReference().compareTo(p2.getDistanceFromReference());
98 }
99 }