
package de.ivu.elect.business.wahlrechtspruefung.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.wahl.boundary.WahlDAO;
import de.ivu.elect.business.wahlrechtspruefung.control.PruefkriteriumExportExchange;
import de.ivu.elect.business.wahlrechtspruefung.entity.Pruefkriterium;
import de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumExportContext;

@Stateless
public class PruefkriteriumExporter extends AbstractExporter<List<Pruefkriterium>, PruefkriteriumExportContext> {

  @Inject
  private PruefkriteriumExportExchange pruefkriteriumExportExchange;

  @Inject
  private PruefkriteriumDAO pruefkriteriumDAO;

  @Inject
  WahlDAO wahlDAO;

  @Override
  protected ExportExchange<List<Pruefkriterium>, PruefkriteriumExportContext> getExchange() {
    return pruefkriteriumExportExchange;
  }

  @Override
  protected List<Pruefkriterium> getExportObject(PruefkriteriumExportContext context) {
    return pruefkriteriumDAO.findByWahlOrderByPosition(wahlDAO.attach(context.getWahl()));
  }

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

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