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

import java.util.ArrayList;
import java.util.List;

import javax.inject.Inject;

import de.ivu.elect.business.gruppe.entity.PolitischeGruppe;
import de.ivu.elect.business.wahl.boundary.WahlSessionSelect;
import de.ivu.elect.business.wahl.entity.Wahl;

@javax.ejb.Stateless
public class PolitischeGruppeSearch {

  @Inject
  private transient PolitischeGruppeExtendedDAO politischeGruppeExtendedDAO;

  @Inject
  private transient WahlSessionSelect wahlExtendedSelect;

  public PolitischeGruppeSearch() {
    super();
  }

  public List<PolitischeGruppe> getPolitischeGruppenFuerAktuelleWahl() {
    Wahl aktuelleWahl = getAktuelleWahl();
    return loadParteienFuerWahl(aktuelleWahl);
  }

  private List<PolitischeGruppe> loadParteienFuerWahl(Wahl aktuelleWahl) {
    if (aktuelleWahl == null) {
      return new ArrayList<>();
    }

    return politischeGruppeExtendedDAO.findByWahl(aktuelleWahl);
  }

  private Wahl getAktuelleWahl() {
    return wahlExtendedSelect.getEntity();
  }
}
