f8432505cca4c4efe0392a74266da46a716e3af8
[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 Country country;
7 private Size size;
8 private Weight weight;
9 private Eye eye;
10 private Integer distanceFromReference;
11
12 Person() {
13 setFirstname(new Firstname());
14 setOrigin(new Origin());
15 setCountry(new Country());
16 setPersonSize(new Size());
17 setWeight(new Weight());
18 setEye(new Eye());
19 setDistanceFromReference(0);
20 }
21
22 Person(String firstname, String countryName, Integer size, Integer weight, String colorEye) {
23 setFirstname(new Firstname(firstname));
24 setOrigin(new Origin(countryName));
25 setCountry(new Country(countryName));
26 setPersonSize(new Size(size));
27 setWeight(new Weight(weight));
28 setEye(new Eye(colorEye));
29 setDistanceFromReference(0);
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
48 public void setCountry(Country country) {
49 this.country = country;
50 }
51
52 public Country getCountry() {
53 return country;
54 }
55
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 }
79
80 public void setDistanceFromReference(Integer distanceFromReference) {
81 this.distanceFromReference = distanceFromReference;
82 }
83
84 public Integer getDistanceFromReference() {
85 return distanceFromReference;
86 }
87
88 @Override
89 public String toString() {
90 return "Person{" +
91 "firstname=" + firstname.getFirstname() +
92 ", origin=" + origin.getCountry() +
93 ", country=" + country.getName() +
94 ", size=" + size.getSize() +
95 ", weight=" + weight.getWeight() +
96 ", eye=" + eye.getStrColor() + "(" + this.getEye().getColor().getRed() + "," + this.getEye().getColor().getGreen() + "," + this.getEye().getColor().getBlue() + ")" +
97 ", distanceFromReference=" + this.getDistanceFromReference() +
98 '}';
99 }
100
101 public Integer distanceTo(Person person) {
102 return this.getFirstname().distanceTo(person.getFirstname()) + this.getOrigin().distanceTo(person.getOrigin())
103 + this.getCountry().distanceTo(person.getCountry()) + this.getPersonSize().distanceTo(person.getPersonSize())
104 + this.getWeight().distanceTo(person.getWeight()) + this.getEye().distanceTo(person.getEye());
105 }
106
107 @Override
108 public int compare(Person p1, Person p2) {
109 return p1.getDistanceFromReference().compareTo(p2.getDistanceFromReference());
110 }
111 }