package de.ivu.elect.was.exchange.stimmeingabe;

import javax.enterprise.inject.Instance;
import javax.inject.Inject;

import de.ivu.elect.business.exchange.control.FileFormat;
import de.ivu.elect.business.stimmeingabe.control.ErgebniseingangExportContext;
import de.ivu.elect.business.stimmeingabe.control.ErgebniseingangExportExchange;
import de.ivu.elect.business.stimmeingabe.entity.Ergebniseingang;
import de.ivu.elect.exchange.AbstractExportExchange;
import de.ivu.elect.exchange.ExportMapper;

public class DefaultErgebniseingangExportExchange extends AbstractExportExchange<Ergebniseingang, ErgebniseingangExportContext> implements ErgebniseingangExportExchange {

  @Inject
  transient Instance<ErgebniseingangExportMapper> exportMapper;

  @Override
  protected Iterable<? extends ExportMapper<Ergebniseingang, ErgebniseingangExportContext>> getAllSupportedMapper() {
    return exportMapper;
  }

  @Override
  public String getDateiname(FileFormat fileFormat, ErgebniseingangExportContext ergebniseingangExportContext, Ergebniseingang ergebniseingang) {
    return ((ErgebniseingangExportMapper) getMapperForFileTypeAndContext(fileFormat, ergebniseingangExportContext)).getDateiname(ergebniseingang,
        ergebniseingangExportContext.getGebiet());
  }

  @Override
  public String getExportDirectory(FileFormat fileFormat, ErgebniseingangExportContext ergebniseingangExportContext, Ergebniseingang ergebniseingang) {
    return ((ErgebniseingangExportMapper) getMapperForFileTypeAndContext(fileFormat, ergebniseingangExportContext)).getExportDirectory(ergebniseingang,
        ergebniseingangExportContext.getGebiet());
  }
}
