Commit | Line | Data |
---|---|---|
6977e614 | 1 | import java.util.Comparator; |
97491195 | 2 | |
5687dc10 | 3 | public class Person implements Comparator<Person> { |
97491195 JB |
4 | private Firstname firstname; |
5 | private Origin origin; | |
6 | private Size size; | |
7 | private Weight weight; | |
8 | private Eye eye; | |
5687dc10 | 9 | private Integer distanceFromReference; |
97491195 | 10 | |
b974e749 JB |
11 | Person() { |
12 | setFirstname(new Firstname()); | |
13 | setOrigin(new Origin()); | |
14 | setPersonSize(new Size()); | |
15 | setWeight(new Weight()); | |
16 | setEye(new Eye()); | |
5687dc10 | 17 | setDistanceFromReference(0); |
b974e749 JB |
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)); | |
5687dc10 | 26 | setDistanceFromReference(0); |
97491195 JB |
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 | } | |
1c118933 | 68 | |
5687dc10 JB |
69 | public void setDistanceFromReference(Integer distanceFromReference) { |
70 | this.distanceFromReference = distanceFromReference; | |
f1e9d6d2 JB |
71 | } |
72 | ||
5687dc10 JB |
73 | public Integer getDistanceFromReference() { |
74 | return distanceFromReference; | |
9b3bfcdd JB |
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() + ")" + | |
5687dc10 | 85 | ", distanceFromReference=" + this.getDistanceFromReference() + |
9b3bfcdd JB |
86 | '}'; |
87 | } | |
88 | ||
5687dc10 JB |
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()); | |
1c118933 | 93 | } |
6977e614 JB |
94 | |
95 | @Override | |
ac6c3ea2 | 96 | public int compare(Person p1, Person p2) { |
5687dc10 | 97 | return p1.getDistanceFromReference().compareTo(p2.getDistanceFromReference()); |
6977e614 | 98 | } |
97491195 | 99 | } |