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

import de.ivu.elect.business.sitzberechnung.entity.SitzberechnungsalgorithmusKonfiguration;
import de.ivu.elect.business.sitzberechnung.entity.Sitzberechnungseingabe;
import de.ivu.elect.business.sitzberechnung.entity.Sitzberechnungsergebnis;
import de.ivu.elect.business.wahl.entity.AbstractWahlParameterLoader;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.WahlartErgebnisart;
import de.ivu.elect.business.wahl.entity.WahlartSitzberechnungsalgorithmus;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.presentation.kandidatur.table.KandidaturGewaehltKeinSitzberechnungsalgorithmusColumnBuilder;
import de.ivu.elect.presentation.kandidatur.table.KandidaturGewaehltSitzberechnungsalgorithmusColumnBuilder;

/**
 * Dummy-Implementierung des Sitzberechnungsalgorithmus liefert leere Listen zurück (NullObject)
 */
public class KeinSitzberechnungsalgorithmus extends AbstractSitzberechnungsalgorithmus<SitzberechnungsalgorithmusKonfiguration> {

  private static final long serialVersionUID = 1L;

  public KeinSitzberechnungsalgorithmus() {
    super();
  }

  @Override
  public boolean isDefaultFuerWahlart(Wahl wahl) {
    return false;
  }

  @Override
  public WahlartSitzberechnungsalgorithmus getSitzberechnungsalgorithmusEnum() {
    return WahlartSitzberechnungsalgorithmus.KEIN;
  }

  @Override
  @SuppressWarnings("rawtypes")
  public Sitzberechnungsergebnis berechneSitzverteilung(Sitzberechnungseingabe sitzberechnungseingabe) {
    return Sitzberechnungsergebnis.KEIN_ERGEBNIS;
  }

  @Override
  public SitzberechnungsalgorithmusKonfiguration getDefaultKonfiguration() {
    return new SitzberechnungsalgorithmusKonfiguration();
  }

  @Override
  public KandidaturGewaehltSitzberechnungsalgorithmusColumnBuilder getKandidaturGewaehltColumnBuilder(Messages messages) {
    return new KandidaturGewaehltKeinSitzberechnungsalgorithmusColumnBuilder(messages);
  }

  @Override
  public boolean isMarkiertGewaehlte(AbstractWahlParameterLoader wahlParameterLoader, Wahl wahl, WahlartErgebnisart ergebnisart) {
    return false;
  }

  @Override
  public boolean isBerechnetErgebnis() {
    return false; // Nur Dummy
  }

  @Override
  public boolean isVergibtSitze() {
    return false;
  }
}
