
package de.ivu.elect.presentation.stimmeingabe;

import de.ivu.elect.business.stimmeingabe.entity.Stimmeingabe;
import de.ivu.elect.business.stimmeingabe.entity.Stimmeingabefehler;
import de.ivu.elect.business.stimmeingabe.entity.Stimmeingabefehlerart;
import de.ivu.elect.jee.faces.Messages;

public class StimmeingabePlausiFehler {

  private final Messages messages;

  private final Stimmeingabefehler stimmeingabefehler;

  private final String stimmeingabeBezugId;

  private final String stimmeingabeBezug;

  public StimmeingabePlausiFehler(Messages messages, Stimmeingabefehler stimmeingabefehler, String stimmeingabeBezugId, String stimmeingabeBezug) {
    super();

    this.messages = messages;

    this.stimmeingabefehler = stimmeingabefehler;

    this.stimmeingabeBezugId = stimmeingabeBezugId;
    this.stimmeingabeBezug = stimmeingabeBezug;
  }

  public boolean hasStimmeingabeAnzahl() {
    return hasStimmeingabe() && getStimmeingabe().hasAnzahlGroesserGleichNull();
  }

  public Long getStimmeingabeAnzahl() {
    return getStimmeingabe().getAnzahl();
  }

  public boolean hasStimmeingabeAnzahlEingabe() {
    return hasStimmeingabe() && getStimmeingabe().hasAnzahlEingabe();
  }

  public String getStimmeingabeAnzahlEingabe() {
    return getStimmeingabe().getAnzahlEingabe();
  }

  public String getStimmeingabeBezugId() {
    return stimmeingabeBezugId;
  }

  public String getStimmeingabeBezug() {
    return stimmeingabeBezug;
  }

  public String getBeschreibung() {
    return getStimmeingabefehler().getBeschreibung();
  }

  public boolean isMussFehler() {
    return getStimmeingabefehler().isMussFehler();
  }

  public boolean isKannFehler() {
    return getStimmeingabefehler().isKannFehler();
  }

  public Stimmeingabefehlerart getFehlerart() {
    return getStimmeingabefehler().getFehlerart();
  }

  public String getFehlerartName() {
    return messages.lokalisiere(getFehlerart());
  }

  public boolean hasStimmeingabe() {
    return getStimmeingabe() != null;
  }

  public Stimmeingabe getStimmeingabe() {
    return getStimmeingabefehler().getStimmeingabe();
  }

  public Stimmeingabefehler getStimmeingabefehler() {
    return stimmeingabefehler;
  }
}
