
package de.ivu.elect.business.anschrift.entity;

import java.util.Objects;

public abstract class AbstractAnschrift implements AnschriftBase, EntityMitAnschrift {

  private static final long serialVersionUID = 1L;

  public static final int PLZ_DEFAULT_LENGTH = 5;

  protected AbstractAnschrift() {
    super();
  }

  public boolean isHauptwohnung() {
    return hasAnschriftArt(AnschriftArt.HAUPTWOHNUNG);
  }

  public boolean isNebenwohnung() {
    return hasAnschriftArt(AnschriftArt.NEBENWOHNUNG);
  }

  public boolean isErreichbarkeitsanschrift() {
    return hasAnschriftArt(AnschriftArt.ERREICHBARKEITSANSCHRIFT);
  }

  private boolean hasAnschriftArt(AnschriftArt anschriftArt) {
    return Objects.equals(anschriftArt, getAnschriftArt());
  }

  @Override
  public Anschrift getAnschrift() {
    return (Anschrift) this;
  }
}
