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 setCountry(new Country());
16 setPersonSize(new Size());
17 setWeight(new Weight());
19 setDistanceFromReference(0);
22 Person(String firstname
, String country
, Integer size
, Integer weight
, String colorEye
) {
23 setFirstname(new Firstname(firstname
));
24 setOrigin(new Origin(country
));
25 setCountry(new Country(country
));
26 setPersonSize(new Size(size
));
27 setWeight(new Weight(weight
));
28 setEye(new Eye(colorEye
));
29 setDistanceFromReference(0);
32 public void setFirstname(Firstname firstname
) {
33 this.firstname
= firstname
;
36 public Firstname
getFirstname() {
40 public void setOrigin(Origin origin
) {
44 public Origin
getOrigin() {
48 public void setCountry(Country country
) {
49 this.country
= country
;
52 public Country
getCountry() {
56 public void setPersonSize(Size size
) {
60 public Size
getPersonSize() {
64 public void setWeight(Weight weight
) {
68 public Weight
getWeight() {
72 public void setEye(Eye eye
) {
80 public void setDistanceFromReference(Integer distanceFromReference
) {
81 this.distanceFromReference
= distanceFromReference
;
84 public Integer
getDistanceFromReference() {
85 return distanceFromReference
;
89 public String
toString() {
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() +
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());
108 public int compare(Person p1
, Person p2
) {
109 return p1
.getDistanceFromReference().compareTo(p2
.getDistanceFromReference());