
package de.ivu.elect.was.exchange.ergebnis.eml;

import de.ivu.elect.business.datei.entity.FileType;
import de.ivu.elect.business.ergebnis.control.ErgebnisExportContext;
import de.ivu.elect.business.ergebnis.control.NlWasErgebnisArtefaktNachGebietErgebniseingabestatusExportContext;
import de.ivu.elect.business.exchange.control.FileFormat;
import de.ivu.elect.business.wahl.control.AbstractNlExportArtefaktNachSystemExportstatusExportContext;

public abstract class AbstractNlWasEml510xNachGebietErgebniseingabestatusExportMapper extends AbstractNlWasEml5xxNachGebietErgebniseingabestatusExportMapper {

  protected AbstractNlWasEml510xNachGebietErgebniseingabestatusExportMapper() {
    super();
  }

  @Override // ELECTVAPP-992
  protected String createTargetFileName(AbstractNlExportArtefaktNachSystemExportstatusExportContext context, FileFormat fileFormat, FileType fileType) {
    if (FileType.ZIP.equals(fileType)) {
      try {
        ErgebnisExportContext emlExportContext = createEmlExportContext((NlWasErgebnisArtefaktNachGebietErgebniseingabestatusExportContext) context);

        return getEmlExportMapper().createEmlZipFileName(createEmlExportObject(emlExportContext), emlExportContext);
      } catch (Exception ex) {
        warn("Fehler beim Erzeugen des EML-510x-ZIP-Dateinamens [fileFormat = " + fileFormat + ", fileType = " + fileType + "]", ex);
      }
    }

    return super.createTargetFileName(context, fileFormat, fileType);
  }

  @Override
  protected abstract Abstract510ErgebnisExportMapper getEmlExportMapper();
}
