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

import static java.util.Collections.emptyList;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;

public class VerteilungBerechnung {

  public VerteilungBerechnung() {
    super();
  }

  public Collection<VerteilungAlgorithmus> collectAlgorithmen() {
    return emptyList();
  }

  public VerteilungErgebnis verteile(VerteilungContext context, Map<VerteilungTeilnehmer, Long> anzahlSitzeVerteiltVorabPerTeilnehmer) {
    return new VerteilungErgebnis() {

      @Override
      public VerteilungAlgorithmus getAlgorithmus() {
        return new VerteilungAlgorithmus() {

          @Override
          public String getKey() {
            return "";
          }

          @Override
          public String formatBezeichnung(VerteilungContext context) {
            return "";
          }

          @Override
          public String formatBeschreibung(VerteilungContext context) {
            return "";
          }
        };
      }

      @Override
      public Optional<VerteilungZuteilungsdivisor> getZuteilungsdivisor() {
        return Optional.empty();
      }

      @Override
      public long getAnzahlStimmen() {
        return 0L;
      }

      @Override
      public long getAnzahlSitzeVerteiltVorab() {
        return 0L;
      }

      @Override
      public long getAnzahlSitzeVerteiltInVerteilung() {
        return 0L;
      }

      @Override
      public long getAnzahlSitzeVerteiltInLosverfahren() {
        return 0L;
      }

      @Override
      public long getAnzahlSitzeAnspruchTeilnehmerMinimal() {
        return 0L;
      }

      @Override
      public long getAnzahlSitzeAnspruchTeilnehmerMaximal() {
        return 0L;
      }

      @Override
      public List<VerteilungTeilnehmerErgebnis> collectTeilnehmerErgebnisse() {
        return emptyList();
      }

      @Override
      public Optional<Exception> getException() {
        return Optional.empty();
      }
    };
  }
}
