@Override
    public boolean equals(Object object) {
        if (object == null) {
            return false;
        }

        if (getClass() != object.getClass()) {
            return false;
        }

        Person person = (Person) object;

        if (this.gender == null || !this.gender.equals(person.getGender())) {
            return false;
        }

        if (this.firstName == null ||
            !this.firstName.equals(person.getFirstName())) {
            return false;
        }

        if (this.surname == null || !this.surname.equals(person.getSurname())) {
            return false;
        }

        if (this.age != person.getAge()) {
            return false;
        }

        return true;
    }