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; | |
e16e3b15 | 6 | private Country country; |
97491195 JB |
7 | private Size size; |
8 | private Weight weight; | |
9 | private Eye eye; | |
5687dc10 | 10 | private Integer distanceFromReference; |
97491195 | 11 | |
b974e749 JB |
12 | Person() { |
13 | setFirstname(new Firstname()); | |
14 | setOrigin(new Origin()); | |
15 | setPersonSize(new Size()); | |
16 | setWeight(new Weight()); | |
17 | setEye(new Eye()); | |
5687dc10 | 18 | setDistanceFromReference(0); |
b974e749 JB |
19 | } |
20 | ||
21 | Person(String firstname, String country, Integer size, Integer weight, String colorEye) { | |
22 | setFirstname(new Firstname(firstname)); | |
23 | setOrigin(new Origin(country)); | |
24 | setPersonSize(new Size(size)); | |
25 | setWeight(new Weight(weight)); | |
26 | setEye(new Eye(colorEye)); | |
5687dc10 | 27 | setDistanceFromReference(0); |
97491195 JB |
28 | } |
29 | ||
30 | public void setFirstname(Firstname firstname) { | |
31 | this.firstname = firstname; | |
32 | } | |
33 | ||
34 | public Firstname getFirstname() { | |
35 | return firstname; | |
36 | } | |
37 | ||
38 | public void setOrigin(Origin origin) { | |
39 | this.origin = origin; | |
40 | } | |
41 | ||
42 | public Origin getOrigin() { | |
43 | return origin; | |
44 | } | |
45 | ||
e16e3b15 JB |
46 | public void setCountry(Country country) { |
47 | this.country = country; | |
48 | } | |
49 | ||
50 | public Country getCountry() { | |
51 | return country; | |
52 | } | |
53 | ||
97491195 JB |
54 | public void setPersonSize(Size size) { |
55 | this.size = size; | |
56 | } | |
57 | ||
58 | public Size getPersonSize() { | |
59 | return size; | |
60 | } | |
61 | ||
62 | public void setWeight(Weight weight) { | |
63 | this.weight = weight; | |
64 | } | |
65 | ||
66 | public Weight getWeight() { | |
67 | return weight; | |
68 | } | |
69 | ||
70 | public void setEye(Eye eye) { | |
71 | this.eye = eye; | |
72 | } | |
73 | ||
74 | public Eye getEye() { | |
75 | return eye; | |
76 | } | |
1c118933 | 77 | |
5687dc10 JB |
78 | public void setDistanceFromReference(Integer distanceFromReference) { |
79 | this.distanceFromReference = distanceFromReference; | |
f1e9d6d2 JB |
80 | } |
81 | ||
5687dc10 JB |
82 | public Integer getDistanceFromReference() { |
83 | return distanceFromReference; | |
9b3bfcdd JB |
84 | } |
85 | ||
86 | @Override | |
87 | public String toString() { | |
88 | return "Person{" + | |
89 | "firstname=" + firstname.getFirstname() + | |
90 | ", origin=" + origin.getCountry() + | |
e16e3b15 | 91 | ", country=" + country + |
9b3bfcdd JB |
92 | ", size=" + size.getSize() + |
93 | ", weight=" + weight.getWeight() + | |
94 | ", eye=" + eye.getStrColor() + "(" + this.getEye().getColor().getRed() + "," + this.getEye().getColor().getGreen() + "," + this.getEye().getColor().getBlue() + ")" + | |
5687dc10 | 95 | ", distanceFromReference=" + this.getDistanceFromReference() + |
9b3bfcdd JB |
96 | '}'; |
97 | } | |
98 | ||
5687dc10 JB |
99 | public Integer distanceTo(Person person) { |
100 | return this.getFirstname().distanceTo(person.getFirstname()) + this.getOrigin().distanceTo(person.getOrigin()) | |
e16e3b15 JB |
101 | + this.getCountry().distanceTo(person.getCountry()) + this.getPersonSize().distanceTo(person.getPersonSize()) |
102 | + this.getWeight().distanceTo(person.getWeight()) + this.getEye().distanceTo(person.getEye()); | |
1c118933 | 103 | } |
6977e614 JB |
104 | |
105 | @Override | |
ac6c3ea2 | 106 | public int compare(Person p1, Person p2) { |
5687dc10 | 107 | return p1.getDistanceFromReference().compareTo(p2.getDistanceFromReference()); |
6977e614 | 108 | } |
97491195 | 109 | } |