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

import de.ivu.elect.business.ergebnis.entity.Stimmenart;
import de.ivu.elect.business.gruppeimgebiet.entity.GruppeImGebiet;
import de.ivu.elect.business.stimmeingabe.control.StimmeingabeErfassenContext;

public abstract class AbstractListenwahlStimmeingabeGruppeStimmenModelBuilder extends AbstractStimmeingabeGruppeStimmenModelBuilder {

  private static final long serialVersionUID = 1L;

  public static final Long GUELTIGE_LISTENSTIMMEN_NUR_EINZELNER_WAHLVORSCHLAG_UNVERAENDERT_ZWISCHENSUMME_INDEX = -3L;

  public static final Long GUELTIGE_LISTENSTIMMEN_NUR_EINZELNER_WAHLVORSCHLAG_VERAENDERT_ZWISCHENSUMME_INDEX = -4L;

  public static final Long GUELTIGE_LISTENSTIMMEN_NUR_EINZELNER_WAHLVORSCHLAG_GESAMT_ZWISCHENSUMME_INDEX = -5L;

  public static final Long GUELTIGE_LISTENSTIMMEN_LISTENKANDIDATUREN_GESAMT_ZWISCHENSUMME_INDEX = -6L;

  /*
   * Konstante GRUPPE_LISTENSTIMMEN_NUR_EINZELNER_WAHLVORSCHLAG_UNVERAENDERT_ZWISCHENSUMME_INDEX existiert NICHT, da diese Anzahl Stimmzettel als Listenstimmen der Gruppe gespeichert wird und dann bei
   * der Ergebnisübernahme (anhand der Nennungen auf der Liste) in Stimmen umgerechnet wird.
   */

  public static final Long GRUPPE_LISTENSTIMMEN_NUR_EINZELNER_WAHLVORSCHLAG_VERAENDERT_ZWISCHENSUMME_INDEX = GUELTIGE_LISTENSTIMMEN_NUR_EINZELNER_WAHLVORSCHLAG_VERAENDERT_ZWISCHENSUMME_INDEX;

  public static final Long GRUPPE_LISTENSTIMMEN_NUR_EINZELNER_WAHLVORSCHLAG_GESAMT = GUELTIGE_LISTENSTIMMEN_NUR_EINZELNER_WAHLVORSCHLAG_GESAMT_ZWISCHENSUMME_INDEX;

  public static final Long GRUPPE_LISTENSTIMMEN_LISTENKANDIDATUREN_GESAMT_ZWISCHENSUMME_INDEX = GUELTIGE_LISTENSTIMMEN_LISTENKANDIDATUREN_GESAMT_ZWISCHENSUMME_INDEX;

  protected AbstractListenwahlStimmeingabeGruppeStimmenModelBuilder() {
    super();
  }

  @Override
  protected boolean isStimmenartApplicable(GruppeImGebiet gruppeImGebiet, Stimmenart stimmenart, StimmeingabeErfassenContext context) {
    if (Stimmenart.DIREKTSTIMME.equals(stimmenart)) {
      return false;
    }

    return super.isStimmenartApplicable(gruppeImGebiet, stimmenart, context);
  }
}
