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

import java.util.List;

import javax.ejb.Stateless;
import javax.inject.Inject;

import de.ivu.elect.business.exchange.control.AbstractExporter;
import de.ivu.elect.business.exchange.control.ExportExchange;
import de.ivu.elect.business.exchange.entity.DateiExportArt;
import de.ivu.elect.business.gebietsbaum.control.GebietsgruppierungExportContext;
import de.ivu.elect.business.gebietsbaum.control.GebietsgruppierungExportExchange;
import de.ivu.elect.business.gebietsbaum.entity.Gebietsgruppierung;

@Stateless
public class GebietsgruppierungExporter
    extends
      AbstractExporter<List<Gebietsgruppierung>, GebietsgruppierungExportContext> {

  @Inject
  private GebietsgruppierungExportExchange exportExchange;

  @Inject
  private GebietsgruppierungDAO gebietsgruppierungDAO;

  public GebietsgruppierungExporter() {
    super();
  }

  @Override
  protected ExportExchange<List<Gebietsgruppierung>, GebietsgruppierungExportContext> getExchange() {
    return exportExchange;
  }

  @Override
  protected boolean isExportHeader() {
    return true;
  }

  @Override
  protected List<Gebietsgruppierung> getExportObject(GebietsgruppierungExportContext context) {
    if (context.getWahl() != null) {
      return gebietsgruppierungDAO.findByWahl(context.getWahl());
    }
    return gebietsgruppierungDAO.findByWahltermin(context.getWahltermin());
  }

  @Override
  protected DateiExportArt getDateiExportArt() {
    return DateiExportArt.GEBIETSGRUPPIERUNG_EXPORT;
  }
}
