
package de.ivu.elect.business.wahlvorschlag.boundary;

import de.ivu.elect.business.dokumente.control.ElectDokumentContext;
import de.ivu.elect.business.person.entity.Personendaten;
import de.ivu.elect.business.person.entity.PersonendatenProperties;
import de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag;
import de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty;

public class WahlvorschlagEmpfangsquittungDokumentContext extends ElectDokumentContext {

  private static final long serialVersionUID = 1L;

  public static final int ZUSTELLART_DEFAULT_MAX_LENGTH = 255;

  private static final boolean ZUSTELLART_DEFAULT_REQUIRED = false;

  private String erfasser;

  private Wahlvorschlag wahlvorschlag;

  private Personendaten empfaenger;

  private String zustellart;

  public WahlvorschlagEmpfangsquittungDokumentContext(ElectDokumentContext electDokumentContext, String erfasser, Wahlvorschlag wahlvorschlag, Personendaten empfaenger) {
    super(electDokumentContext);

    this.erfasser = erfasser;

    this.wahlvorschlag = wahlvorschlag;

    this.empfaenger = empfaenger;
  }

  public Personendaten getEmpfaenger() {
    return empfaenger;
  }

  public void setEmpfaenger(Personendaten empfaenger) {
    this.empfaenger = empfaenger;
  }

  public Wahlvorschlag getWahlvorschlag() {
    return wahlvorschlag;
  }

  public void setWahlvorschlag(Wahlvorschlag wahlvorschlag) {
    this.wahlvorschlag = wahlvorschlag;
  }

  public PersonendatenProperties getEmpfaengerProperties() {
    return new PersonendatenProperties(getEmpfaenger());
  }

  public String getErfasser() {
    return erfasser;
  }

  public void setErfasser(String erfasser) {
    this.erfasser = erfasser;
  }

  public ZustellartProperty getZustellartProperty() {
    return new ZustellartProperty();
  }

  public String getZustellart() {
    return zustellart;
  }

  public void setZustellart(String zustellart) {
    this.zustellart = zustellart;
  }

  public class ZustellartProperty extends AbstractStringProperty {

    @Override
    public boolean getDefaultRequired() {
      return ZUSTELLART_DEFAULT_REQUIRED;
    }

    @Override
    public int getDefaultMaxLength() {
      return ZUSTELLART_DEFAULT_MAX_LENGTH;
    }

    @Override
    public String getDefaultLabel() {
      return getMessage("wahlvorschlag.empfangsquittung.zustellart.label");
    }

    @Override
    public String getValue() {
      return getZustellart();
    }

    @Override
    public void setValue(String value) {
      setZustellart(value);
    }
  }
}
