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

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.stimmeingabe.control.StimmeingabeDocumentByErgebnisDatenExportContext;
import de.ivu.elect.business.stimmeingabe.control.StimmeingabeDocumentByErgebnisDatenExportExchange;
import de.ivu.elect.business.stimmeingabe.control.StimmeingabeDocumentByErgebnisDatenExportObject;
import de.ivu.elect.business.stimmeingabe.control.StimmeingabeDocumentErgebnisDatenCreator;

@Stateless
public class StimmeingabeDocumentByErgebnisDatenExporter
    extends
    AbstractExporter<StimmeingabeDocumentByErgebnisDatenExportObject, StimmeingabeDocumentByErgebnisDatenExportContext> {

  @Inject
  private transient StimmeingabeDocumentByErgebnisDatenExportExchange exportExchange;

  @Inject
  private transient StimmeingabeDocumentErgebnisDatenCreator ergebnisDatenCreator;

  public StimmeingabeDocumentByErgebnisDatenExporter() {
    super();
  }

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

  @Override
  protected ExportExchange<StimmeingabeDocumentByErgebnisDatenExportObject, StimmeingabeDocumentByErgebnisDatenExportContext> getExchange() {
    return exportExchange;
  }

  @Override
  protected StimmeingabeDocumentByErgebnisDatenExportObject getExportObject(
      StimmeingabeDocumentByErgebnisDatenExportContext stimmeingabeExportContext) {
    return new StimmeingabeDocumentByErgebnisDatenExportObject(
        ergebnisDatenCreator.createErgebnisDatenExporte(stimmeingabeExportContext.getErgebnis(), stimmeingabeExportContext.getWurzelgebiet()));
  }
}
