
package de.ivu.elect.business.stimmeingabe.control;

import javax.enterprise.inject.Instance;
import javax.inject.Inject;

import de.ivu.elect.business.wahl.entity.Wahl;

public class StimmeingabeKopfzahlErfassenLabelGeneratorFinder {

  @Inject
  transient Instance<StimmeingabeKopfzahlErfassenLabelGenerator> labelGeneratoren;

  public boolean hasStimmeingabeKopfzahlErfassenLabelGeneratorFuerWahl(Wahl wahl) {
    for (StimmeingabeKopfzahlErfassenLabelGenerator labelGenerator : labelGeneratoren) {
      if (labelGenerator.isAkzeptiertWahlart(wahl.getWahlart())) {
        return true;
      }
    }
    return false;
  }
  public StimmeingabeKopfzahlErfassenLabelGenerator getStimmeingabeKopfzahlErfassenLabelGeneratorFuerWahl(Wahl wahl) {
    for (StimmeingabeKopfzahlErfassenLabelGenerator labelGenerator : labelGeneratoren) {
      if (labelGenerator.isAkzeptiertWahlart(wahl.getWahlart())) {
        return labelGenerator;
      }
    }
    throw new IllegalStateException("Für die Wahlart " + wahl.getWahlart()
        + " wurde kein passender StimmeingabeKopfzahlErfassenLabelGenerator gefunden.");
  }
}
