
package de.ivu.elect.dokumente.stimmeingabe;

import javax.inject.Inject;

import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.Wahltermin;

// Cf. AbstractWusStimmeingabeDocumentByErgebnisDatenExportMapper!
public abstract class AbstractWasStimmeingabeDocumentByErgebnisDatenExportMapper extends AbstractCoreStimmeingabeDocumentByErgebnisDatenExportMapper {

  @Inject
  private transient StimmeingabeDocumentVorlaeufigEndgueltigFileNameConfig stimmeingabeDocumentFileNameConfig;

  @Inject
  private transient WasStimmeingabeDocumentFactory stimmeingabeDocumentFactory;

  protected AbstractWasStimmeingabeDocumentByErgebnisDatenExportMapper() {
    super();
  }

  @Override
  protected String getFileFormatName() {
    return stimmeingabeDocumentFileNameConfig.getFileFormatName();
  }

  @Override
  protected <K> String getDateiName(Wahl wahl, Wahltermin wahltermin, K dateiSchluessel) {
    return stimmeingabeDocumentFileNameConfig.getDateiName(dateiSchluessel, super.getDateiName(wahl, wahltermin, dateiSchluessel));
  }

  @Override
  protected AbstractStimmeingabeDocumentFactory getStimmeingabeDocumentFactory() {
    return stimmeingabeDocumentFactory;
  }
}
