
package de.ivu.elect.presentation.anschrift.table;

import static org.apache.commons.lang3.StringUtils.defaultIfBlank;
import static org.apache.commons.lang3.StringUtils.isNotBlank;

import java.io.Serializable;

import de.ivu.elect.business.anschrift.entity.Anschrift;

public class ZusammengesetzteAnschrift implements Serializable {

  private static final long serialVersionUID = 1L;

  private String strassenname;

  private String hausnummer;

  private String buchstabe;

  private String zusatz;

  private String wohnungsnummer;

  private String plz;

  private String ort;

  private String ortsteil;

  private String staat;

  private String wohnungsgeber;

  public ZusammengesetzteAnschrift() {
    this("", "", "", "", "", "", "", "", "", "", "");
  }

  public ZusammengesetzteAnschrift(Anschrift anschrift) {
    this(anschrift.getStrasse(), anschrift.getHausnummer(), "", anschrift.getHausnummerzusatz(), anschrift.getWohnungsnummer(), anschrift.getPlz(), anschrift.getOrt(), anschrift.getOrtsteil(), "", anschrift.getStaat(), anschrift.getZustellanweisung());
  }

  public ZusammengesetzteAnschrift(String strassenname, String hausnummer, String buchstabe, String zusatz, String wohnungsnummer, String plz, String ort, String ortsteil, String staatCode, String staatName, String wohnungsgeber) {
    super();

    this.strassenname = strassenname;
    this.hausnummer = hausnummer;
    this.buchstabe = buchstabe;
    this.zusatz = zusatz;
    this.wohnungsnummer = wohnungsnummer;
    this.plz = plz;
    this.ort = ort;
    this.ortsteil = ortsteil;
    this.staat = defaultIfBlank(staatName, staatCode);
    this.wohnungsgeber = wohnungsgeber;
  }

  public boolean hasStrassenname() {
    return isNotBlank(getStrassenname());
  }

  public String getStrassenname() {
    return strassenname;
  }

  public void setStrassenname(String strassenname) {
    this.strassenname = strassenname;
  }

  public boolean hasHausnummer() {
    return isNotBlank(getHausnummer());
  }

  public String getHausnummer() {
    return hausnummer;
  }

  public void setHausnummer(String hausnummer) {
    this.hausnummer = hausnummer;
  }

  public boolean hasBuchstabe() {
    return isNotBlank(getBuchstabe());
  }

  public String getBuchstabe() {
    return buchstabe;
  }

  public void setBuchstabe(String buchstabe) {
    this.buchstabe = buchstabe;
  }

  public boolean hasZusatz() {
    return isNotBlank(getZusatz());
  }

  public String getZusatz() {
    return zusatz;
  }

  public void setZusatz(String zusatz) {
    this.zusatz = zusatz;
  }

  public boolean hasWohnungsnummer() {
    return isNotBlank(getWohnungsnummer());
  }

  public String getWohnungsnummer() {
    return wohnungsnummer;
  }

  public void setWohnungsnummer(String wohnungsnummer) {
    this.wohnungsnummer = wohnungsnummer;
  }

  public boolean hasPlz() {
    return isNotBlank(getPlz());
  }

  public String getPlz() {
    return plz;
  }

  public void setPlz(String plz) {
    this.plz = plz;
  }

  public boolean hasOrt() {
    return isNotBlank(getOrt());
  }

  public String getOrt() {
    return ort;
  }

  public void setOrt(String ort) {
    this.ort = ort;
  }

  public boolean hasOrtsteil() {
    return isNotBlank(getOrtsteil());
  }

  public String getOrtsteil() {
    return ortsteil;
  }

  public void setOrtsteil(String ortsteil) {
    this.ortsteil = ortsteil;
  }

  public boolean hasStaat() {
    return isNotBlank(getStaat());
  }

  public String getStaat() {
    return staat;
  }

  public void setStaat(String staat) {
    this.staat = staat;
  }

  public boolean hasWohnungsgeber() {
    return isNotBlank(getWohnungsgeber());
  }

  public String getWohnungsgeber() {
    return wohnungsgeber;
  }

  public void setWohnungsgeber(String wohnungsgeber) {
    this.wohnungsgeber = wohnungsgeber;
  }
}
