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

import java.util.ArrayList;
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.wahlbeteiligung.control.WahlbeteiligungAuswertungExportExchange;
import de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungAuswertung;
import de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungAuswertungExchangeContext;

@Stateless
public class WahlbeteiligungAuswertungExporter extends AbstractExporter<List<WahlbeteiligungAuswertung>, WahlbeteiligungAuswertungExchangeContext> {

  @Inject
  private transient WahlbeteiligungAuswertungDAO wahlbeteiligungAuswertungDAO;

  @Inject
  private transient WahlbeteiligungAuswertungExportExchange exportExchange;

  public WahlbeteiligungAuswertungExporter() {
    super();
  }

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

  @Override
  public ExportExchange<List<WahlbeteiligungAuswertung>, WahlbeteiligungAuswertungExchangeContext> getExchange() {
    return exportExchange;
  }

  @Override
  public List<WahlbeteiligungAuswertung> getExportObject(WahlbeteiligungAuswertungExchangeContext context) {
    return new ArrayList<>(wahlbeteiligungAuswertungDAO.findByWahl(context.getWahl()));
  }

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