
package de.ivu.elect.core.exchange.stimmen.csv;

import de.ivu.elect.business.ergebnis.control.ErgebnisExportContext;
import de.ivu.elect.business.ergebnis.entity.Stimmenart;
import de.ivu.elect.business.wahl.entity.Wahl;

public class ListenstimmenCsvExportMapper extends AbstractEineStimmenCsvExportMapper {

  public static final String FILE_FORMAT_NAME = "file.format.listenstimmen";

  public ListenstimmenCsvExportMapper() {
    super();
  }

  @Override
  public boolean isAcceptContext(ErgebnisExportContext context) {
    if (!super.isAcceptContext(context)) {
      return false;
    }

    if (context == null || !context.hasWahl()) {
      return false;
    }

    Wahl wahl = context.getWahl();

    return !wahl.isWahlMitDirektkandidatengebieten() && wahl.isWahlMitListengebieten();
  }

  @Override
  protected String getFileFormatName() {
    return FILE_FORMAT_NAME;
  }

  @Override
  protected Stimmenart getStimmenart() {
    return Stimmenart.LISTENSTIMME;
  }
}
