package de.ivu.elect.stimmzettel;

import de.ivu.elect.stimmzettel.ergebnis.StimmzettelStyle;

public class StimmzettelKonfiguration {

  private final long maxAnzahlStimmen;

  private final long maxAnzahlStimmenKandidat;

  private final long maxAnzahlMarkierungKandidat;

  private final boolean eingabeEinblenden;

  private final boolean meldungenEinblenden;

  private final boolean statistikEinblenden;

  private final boolean stimmzettelDatenEinblenden;

  private final boolean resetButtonEinblenden;

  private final String stimmzettelDatenInputId;

  private final StimmzettelFunctions stimmzettelFunctions;

  private final String eingabeCodeSpeichern;
  private final String eingabeCodeSpeichernGueltig;
  private final String eingabeCodeSpeichernUngueltig;

  private final StimmzettelBarcodes stimmzettelBarcodes;

  private final StimmzettelStyle stimmzettelStyle;

  public StimmzettelKonfiguration(long maxAnzahlStimmen, long maxAnzahlStimmenKandidat, long maxAnzahlMarkierungKandidat, boolean eingabeEinblenden,
                                  boolean meldungenEinblenden, boolean statistikEinblenden, boolean stimmzettelDatenEinblenden, boolean resetButtonEinblenden,
                                  String stimmzettelDatenInputId, StimmzettelFunctions stimmzettelFunctions,
                                  String eingabeCodeSpeichern, String eingabeCodeSpeichernGueltig,String eingabeCodeSpeichernUngueltig, StimmzettelBarcodes stimmzettelBarcodes,
                                  StimmzettelStyle stimmzettelStyle) {
    this.maxAnzahlStimmen = maxAnzahlStimmen;
    this.maxAnzahlStimmenKandidat = maxAnzahlStimmenKandidat;
    this.maxAnzahlMarkierungKandidat = maxAnzahlMarkierungKandidat;
    this.eingabeEinblenden = eingabeEinblenden;
    this.meldungenEinblenden = meldungenEinblenden;
    this.statistikEinblenden = statistikEinblenden;
    this.stimmzettelDatenEinblenden = stimmzettelDatenEinblenden;
    this.resetButtonEinblenden = resetButtonEinblenden;
    this.stimmzettelDatenInputId = stimmzettelDatenInputId;
    this.stimmzettelFunctions = stimmzettelFunctions;
    this.eingabeCodeSpeichern = eingabeCodeSpeichern;
    this.eingabeCodeSpeichernGueltig = eingabeCodeSpeichernGueltig;
    this.eingabeCodeSpeichernUngueltig = eingabeCodeSpeichernUngueltig;
    this.stimmzettelBarcodes = stimmzettelBarcodes;
    this.stimmzettelStyle = stimmzettelStyle;
  }

  public StimmzettelKonfiguration(long maxAnzahlStimmen, long maxAnzahlStimmenKandidat, long maxAnzahlMarkierungKandidat, boolean eingabeEinblenden,
                                  boolean meldungenEinblenden, boolean statistikEinblenden, boolean stimmzettelDatenEinblenden, boolean resetButtonEinblenden,
                                  StimmzettelStyle stimmzettelStyle) {
    this(maxAnzahlStimmen, maxAnzahlStimmenKandidat, maxAnzahlMarkierungKandidat, eingabeEinblenden, meldungenEinblenden, statistikEinblenden,
        stimmzettelDatenEinblenden, resetButtonEinblenden, null,
        StimmzettelFunctions.OHNE_FUNCTIONS, null, null, null, StimmzettelBarcodes.OHNE_BARCODES, stimmzettelStyle);
  }

  public long getMaxAnzahlStimmen() {
    return maxAnzahlStimmen;
  }

  public long getMaxAnzahlStimmenKandidat() {
    return maxAnzahlStimmenKandidat;
  }

  public long getMaxAnzahlMarkierungKandidat() {
    return maxAnzahlMarkierungKandidat;
  }

  public boolean isEingabeEinblenden() {
    return eingabeEinblenden;
  }

  public boolean isMeldungenEinblenden() {
    return meldungenEinblenden;
  }

  public boolean isStatistikEinblenden() {
    return statistikEinblenden;
  }

  public boolean isStimmzettelDatenEinblenden() {
    return stimmzettelDatenEinblenden;
  }

  public String getStimmzettelDatenInputId() {
    return stimmzettelDatenInputId;
  }

  public String getEingabeCodeSpeichern() {
    return eingabeCodeSpeichern;
  }

  public boolean isResetButtonEinblenden() {
    return resetButtonEinblenden;
  }

  public StimmzettelFunctions getStimmzettelFunctions() {
    return stimmzettelFunctions;
  }

  public StimmzettelBarcodes getStimmzettelBarcodes() {
    return stimmzettelBarcodes;
  }

  public StimmzettelStyle getStimmzettelStyle() {
    return stimmzettelStyle;
  }

  public String getEingabeCodeSpeichernGueltig() {
    return eingabeCodeSpeichernGueltig;
  }

  public String getEingabeCodeSpeichernUngueltig() {
    return eingabeCodeSpeichernUngueltig;
  }
}
