
package de.ivu.elect.presentation.ergebnis.exchange;

import de.ivu.elect.business.dokumente.entity.DokumentVorlageArt;
import de.ivu.elect.business.ergebnis.control.gesamtergebnis.ErgebnisGesamtergebnisTabellarischDocumentExportContext;
import de.ivu.elect.business.exchange.entity.DateiExportArt;
import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.business.wahl.entity.CommonWahlart;
import de.ivu.elect.business.wahl.entity.Wahl;

public class ErgebnisGesamtergebnisTabellarischDocumentExportDescription extends AbstractErgebnisdokumentTypExportDescription {

  private static final long serialVersionUID = 1L;

  public ErgebnisGesamtergebnisTabellarischDocumentExportDescription() {
    super();
  }

  @Override
  public DateiExportArt getDateiExportArt() {
    return DateiExportArt.GESAMTERGEBNIS_V7_EXPORT;
  }

  @Override
  public DokumentVorlageArt getDokumentVorlageArt() {
    return DokumentVorlageArt.GESAMTERGEBNIS_V7;
  }

  @Override
  public UseCasePermission getUseCasePermission() {
    return UseCasePermission.DOKUMENT_ERZEUGEN_NIEDERSCHRIFT;
  }

  @Override
  public String getExportSearchViewId() {
    return ErgebnisGesamtergebnisTabellarischDocumentExportView.VIEW_ID;
  }

  public int getWahlartDokumentVorlagenAnzahlZeilenProSeiteDefaultValue(Wahl wahl) {
    return ErgebnisGesamtergebnisTabellarischDocumentExportContext.DOKUMENT_VORLAGE_ANZAHL_ZEILEN_PRO_SEITE_DEFAULT_VALUE;
  }

  public int getWahlartDokumentVorlagenErsteSeiteAnzahlSpaltenDefaultValue(Wahl wahl) {
    return ErgebnisGesamtergebnisTabellarischDocumentExportContext.DOKUMENT_VORLAGE_ERSTE_SEITE_ANZAHL_SPALTEN_DEFAULT_VALUE;
  }

  public int getWahlartDokumentVorlagenWeitereSeitenAnzahlSpaltenDefaultValue(Wahl wahl) {
    return ErgebnisGesamtergebnisTabellarischDocumentExportContext.DOKUMENT_VORLAGE_WEITERE_SEITEN_ANZAHL_SPALTEN_DEFAULT_VALUE;
  }

  public boolean isWahlartDokumentVorlagenNurGesamtergebnis(Wahl wahl) {
    return false;
  }

  public boolean isWahlartDokumentVorlagenNurDirektstimmen(Wahl wahl) {
    return isWahlartNurDirektstimmen(wahl);
  }

  public boolean isWahlartDokumentVorlagenNurListenstimmen(Wahl wahl) {
    return isWahlartNurListenstimmen(wahl);
  }

  public boolean isWahlartDokumentVorlagenNurReferendumstimmen(Wahl wahl) {
    return isWahlartNurReferendumstimmen(wahl);
  }

  public boolean isWahlartDokumentVorlagenByStimmenSeitenart(Wahl wahl) {
    return CommonWahlart.EUROPAWAHL.equalsWahlart(wahl);
  }
}
