/**
 * Person.java - "Programmering i Java", 4.utgave - 2009-07-01
 *
 * Klassen ligger i pakken mittBibliotek.
 * Klassen er mutabel. Både fornavn og etternavn kan endres.
 * Klassen implementerer Serializable, det trengs i kapittel 23.
 */

package mittBibliotek;
public class Person implements java.io.Serializable {
  private final int personNr;
  private String fornavn;
  private String etternavn;

  public Person(int personNr, String fornavn, String etternavn) {
    this.personNr = personNr;
    this.fornavn = fornavn;
    this.etternavn = etternavn;
  }

  public void setFornavn(String fornavn) {
    this.fornavn = fornavn;
  }

  public void setEtternavn(String etternavn) {
    this.etternavn = etternavn;
  }

  public int getPersonNr() {
    return personNr;
  }

  public String getEtternavn() {
    return etternavn;
  }

  public String getFornavn() {
    return fornavn;
  }

  /**
   * Likhet betyr at alle objektvariablene er like (ignore case)
   */
  public boolean equals(Object denAndre) {
    if (!(denAndre instanceof Person)) {
      return false;
    }
    if (this == denAndre) {
      return true;
    }
    Person p = (Person) denAndre;
    return (personNr == p.personNr && fornavn.equalsIgnoreCase(p.fornavn)
                                                   && etternavn.equalsIgnoreCase(p.etternavn));
  }

  public String toString() {
    return personNr + ": " + etternavn + ", " + fornavn;
  }
}
