
package de.ivu.elect.business.stimmeingabe.control;

import java.util.ArrayList;
import java.util.List;

import javax.enterprise.inject.Specializes;

import de.ivu.elect.business.wahl.entity.CommonWahlart;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen;
import de.ivu.elect.business.wahl.entity.WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmenFilter;

@Specializes
public class StimmeingabeErfassenModelLayoutStimmeingabeGruppeStimmenFilter extends WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmenFilter {

  public StimmeingabeErfassenModelLayoutStimmeingabeGruppeStimmenFilter() {
    super();
  }

  @Override
  protected List<WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen> filterValuesInternal(Wahl wahl) {
    List<WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen> result = new ArrayList<>(super.filterValuesInternal(wahl));

    if (CommonWahlart.BUNDESTAGSWAHL.equalsWahlart(wahl)) {
      result.add(WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen.TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_UNGUELTIGE_GUELTIGE_OBEN);
      result.add(WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen.TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_GUELTIGE_UNGUELTIGE_UNTEN);
    }

    if (CommonWahlart.EUROPAWAHL.equalsWahlart(wahl) || CommonWahlart.BUERGERMEISTERWAHL.equalsWahlart(wahl)) {
      result.add(WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen.TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_UNGUELTIGE_GUELTIGE_OBEN);
      result.add(WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen.TBL_GRUPPE_STIMMEN_MIT_ZEILEN_SYSTEM_GRUPPE_STIMMEN_GUELTIGE_UNGUELTIGE_UNTEN);
      result.add(WahlParameterStimmeingabeErfassungsmaskeLayoutStimmeingabeGruppeStimmen.TBL_SYSTEM_GRUPPE_STIMMEN_UNGUELTIGE_GUELTIGE_UND_TBL_GRUPPE_STIMMEN_OHNE_ZEILEN_SYSTEM_GRUPPE_STIMMEN);
    }

    return result;
  }
}
