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