
package de.ivu.elect.business.wahl.entity;

public enum WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen {

  /**
   * @deprecated Dient als Fallback-Wert, um das bisherige, Wahlart UND GGF. KUNDEN-spezifische, Layout anzuzeigen.
   */
  @Deprecated
  DEFAULT_TBL_SYSTEM_GRUPPE_STIMMEN_UND_TBL_GRUPPE_STIMMEN,

  TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_GUELTIGE_UNGUELTIGE_UNTEN,
  TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_GUELTIGE_UNGUELTIGE_UNTEN_ABGESETZT {

    @Override
    public boolean isTblStimmeingabenGruppeStimmenMitStimmeingabenSystemGruppeStimmenAbgesetzt() {
      return true;
    }
  },

  TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_UNGUELTIGE_GUELTIGE_OBEN,
  TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_UNGUELTIGE_GUELTIGE_OBEN_ABGESETZT {

    @Override
    public boolean isTblStimmeingabenGruppeStimmenMitStimmeingabenSystemGruppeStimmenAbgesetzt() {
      return true;
    }
  },

  TBL_SYSTEM_GRUPPE_STIMMEN_UNGUELTIGE_GUELTIGE_UND_TBL_GRUPPE_STIMMEN_OHNE_ZEILEN_SYSTEM_GRUPPE_STIMMEN,

  ;

  WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen() {
  }

  public static WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen defaultValue() {
    return DEFAULT_TBL_SYSTEM_GRUPPE_STIMMEN_UND_TBL_GRUPPE_STIMMEN;
  }

  public boolean isTblStimmeingabenSystemGruppeStimmenConfigured() {
    return this.equals(TBL_SYSTEM_GRUPPE_STIMMEN_UNGUELTIGE_GUELTIGE_UND_TBL_GRUPPE_STIMMEN_OHNE_ZEILEN_SYSTEM_GRUPPE_STIMMEN);
  }

  public boolean isTblStimmeingabenGruppeStimmenConfigured() {
    return !this.equals(DEFAULT_TBL_SYSTEM_GRUPPE_STIMMEN_UND_TBL_GRUPPE_STIMMEN);
  }

  public boolean isTblStimmeingabenGruppeStimmenMitStimmeingabenSystemGruppeStimmenAlsErsteZeilen() {
    return this.equals(TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_UNGUELTIGE_GUELTIGE_OBEN)
        || this.equals(TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_UNGUELTIGE_GUELTIGE_OBEN_ABGESETZT);
  }

  public boolean isTblStimmeingabenGruppeStimmenMitStimmeingabenSystemGruppeStimmenAlsLetzteZeilen() {
    return this.equals(TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_GUELTIGE_UNGUELTIGE_UNTEN)
        || this.equals(TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_GUELTIGE_UNGUELTIGE_UNTEN_ABGESETZT);
  }

  public boolean isTblStimmeingabenGruppeStimmenMitStimmeingabenSystemGruppeStimmenAbgesetzt() {
    return false;
  }
}
