1 import java
.util
.Comparator
;
3 public class Person
implements Comparator
<Person
> {
4 private Firstname firstname
;
6 private Country country
;
10 private Integer distanceFromReference
;
13 setFirstname(new Firstname());
14 setOrigin(new Origin());
15 setPersonSize(new Size());
16 setWeight(new Weight());
18 setDistanceFromReference(0);
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
));
27 setDistanceFromReference(0);
30 public void setFirstname(Firstname firstname
) {
31 this.firstname
= firstname
;
34 public Firstname
getFirstname() {
38 public void setOrigin(Origin origin
) {
42 public Origin
getOrigin() {
46 public void setCountry(Country country
) {
47 this.country
= country
;
50 public Country
getCountry() {
54 public void setPersonSize(Size size
) {
58 public Size
getPersonSize() {
62 public void setWeight(Weight weight
) {
66 public Weight
getWeight() {
70 public void setEye(Eye eye
) {
78 public void setDistanceFromReference(Integer distanceFromReference
) {
79 this.distanceFromReference
= distanceFromReference
;
82 public Integer
getDistanceFromReference() {
83 return distanceFromReference
;
87 public String
toString() {
89 "firstname=" + firstname
.getFirstname() +
90 ", origin=" + origin
.getCountry() +
91 ", country=" + country
+
92 ", size=" + size
.getSize() +
93 ", weight=" + weight
.getWeight() +
94 ", eye=" + eye
.getStrColor() + "(" + this.getEye().getColor().getRed() + "," + this.getEye().getColor().getGreen() + "," + this.getEye().getColor().getBlue() + ")" +
95 ", distanceFromReference=" + this.getDistanceFromReference() +
99 public Integer
distanceTo(Person person
) {
100 return this.getFirstname().distanceTo(person
.getFirstname()) + this.getOrigin().distanceTo(person
.getOrigin())
101 + this.getCountry().distanceTo(person
.getCountry()) + this.getPersonSize().distanceTo(person
.getPersonSize())
102 + this.getWeight().distanceTo(person
.getWeight()) + this.getEye().distanceTo(person
.getEye());
106 public int compare(Person p1
, Person p2
) {
107 return p1
.getDistanceFromReference().compareTo(p2
.getDistanceFromReference());