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

import java.util.List;

import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.boundary.GebietDAO;
import de.ivu.elect.business.gebietsbaum.boundary.GebietsartDAO;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.Gebietsart;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.Wahltermin;

public class GebietsbaumFactory {

  @Inject
  private GebietDAO gebietDAO;

  @Inject
  private GebietsartDAO gebietsartDAO;

  public Gebietsbaum createFromWahl(Wahl wahl) {
    List<Gebiet> gebiete = gebietDAO.findByWahl(wahl);
    return new Gebietsbaum(wahl, gebiete);
  }

  public Gebietsbaum createFromWahltermin(Wahltermin wahltermin) {
    List<Gebiet> gebiete = gebietDAO.findByWahltermin(wahltermin);
    List<Gebietsart> gebietsartList = gebietsartDAO.findByAll(wahltermin.getMandant());
    return new Gebietsbaum(null, gebiete, gebietsartList);
  }

}
