
package de.ivu.elect.presentation.verteilung;

import de.ivu.elect.presentation.verteilung.form.AbstractVerteilungBerechnenViewFormBuilder;

public enum VerteilungBerechnenViewAlgorithmusBeispiel {

  LOSVERFAHREN {

    @Override
    public void setUp(VerteilungBerechnenViewContext context, AbstractVerteilungBerechnenViewFormBuilder viewFormBuilder) {
      viewFormBuilder.updateTeilnehmerAnzahlenStimmen(context, 8L, //
          21L, //
          17L, //
          3L, //
          6L, //
          3L, //
          2L //
      );
    }
  },

  MEHRHEITSSICHERUNG {

    @Override
    public void setUp(VerteilungBerechnenViewContext context, AbstractVerteilungBerechnenViewFormBuilder viewFormBuilder) {
      context.setMehrheitssicherung(VerteilungBerechnenViewMehrheitssicherung.VERTEILUNG_OHNE_TEILNEHMER_IN_MEHRHEITSSICHERUNG);

      viewFormBuilder.updateTeilnehmerAnzahlenStimmen(context, 13L, //
          5285L, //
          7036L, // Absolute Mehrheit...
          566L, //
          969L //
      );
    }
  },

  MEHRHEITSSICHERUNG_DANN_LOSVERFAHREN {

    @Override
    public void setUp(VerteilungBerechnenViewContext context, AbstractVerteilungBerechnenViewFormBuilder viewFormBuilder) {
      context.setMehrheitssicherung(VerteilungBerechnenViewMehrheitssicherung.VERTEILUNG_OHNE_TEILNEHMER_IN_MEHRHEITSSICHERUNG);

      viewFormBuilder.updateTeilnehmerAnzahlenStimmen(context, 8L, //
          13L, //
          7L, // Absolute Mehrheit...
          2L, //
          2L //
      );
    }
  },

  ;

  VerteilungBerechnenViewAlgorithmusBeispiel() {
  }

  public abstract void setUp(VerteilungBerechnenViewContext context, AbstractVerteilungBerechnenViewFormBuilder viewFormBuilder);
}
