Fix the country name fetching from CSV.
[Persons_Comparator.git] / src / Person.java
CommitLineData
6977e614 1import java.util.Comparator;
97491195 2
5687dc10 3public 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
b340a28f 22 Person(String firstname, String countryName, Integer size, Integer weight, String colorEye) {
b974e749 23 setFirstname(new Firstname(firstname));
b340a28f
JB
24 setOrigin(new Origin(countryName));
25 setCountry(new Country(countryName));
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}