
package de.ivu.elect.presentation.kandidatur;

import static java.util.Collections.singletonList;

import java.io.Serializable;

import javax.inject.Inject;

import de.ivu.elect.business.person.boundary.BerufExtendedDAO;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wertelisten.boundary.WertelistenExtendedDAO;
import de.ivu.elect.business.wertelisten.entity.WertelistenArt;

public class BerufeUndWertelistenVorhandenPruefer implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  protected transient BerufExtendedDAO berufExtendedDAO;

  @Inject
  protected transient WertelistenExtendedDAO wertelistenExtendedDAO;

  public BerufeUndWertelistenVorhandenPruefer() {
    super();
  }

  public boolean isVorhandenSeinVonWertelistenPruefen() {
    return true;
  }

  public boolean isKeinBerufVorhanden() {
    return berufExtendedDAO.findByCount() == 0;
  }

  public boolean isKeinAkademischerGradVorhanden(Wahl wahl) {
    return !isWertelistenVorhanden(wahl, WertelistenArt.AKADEMISCHER_GRAD);
  }

  public boolean isKeinEhrenamtVorhanden(Wahl wahl) {
    return !isWertelistenVorhanden(wahl, WertelistenArt.EHRENAMT);
  }

  private boolean isWertelistenVorhanden(Wahl wahl, WertelistenArt wertelistenArt) {
    return wahl != null && wertelistenExtendedDAO.findByCountWahlAndWertelistenArt(wahl, singletonList(wertelistenArt)) > 0;
  }
}
