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

import de.ivu.elect.business.ergebnis.boundary.SitzeFactory;
import de.ivu.elect.business.sitzberechnung.control.varianten.Variantenberechner;
import de.ivu.elect.business.system.boundary.SystemLogWriter;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.presentation.person.PersonendatenFormatter;

/**
 * Basis-Klasse zur Konfiguration des verwendeten Sitzberechnungsalgorithmus
 */
public class SitzberechnungsalgorithmusKonfiguration {

  private boolean konflikeSelbstLoesen = false; // Flag, um zu signalisieren, dass der Algorithmus auftretende Konflikte selbst lösen soll
  private boolean protokollErstellen = true; // Kann zur Optimierung bei der Variantenberechnung auf false gesetzt werden
  private long maximaleAnzahlSitzberechnungenInVariantenberechnung = Variantenberechner.DEFAULT_MAX_ANZAHL_SITZBERECHNUNGEN;

  private Messages messages;
  private SystemLogWriter systemLogWriter;
  private PersonendatenFormatter personendatenFormatter;
  private SitzeFactory sitzeFactory;

  public boolean isKonflikeSelbstLoesen() {
    return konflikeSelbstLoesen;
  }

  public void setKonflikeSelbstLoesen(boolean konflikeSelbstLoesen) {
    this.konflikeSelbstLoesen = konflikeSelbstLoesen;
  }

  public boolean isProtokollErstellen() {
    return protokollErstellen;
  }

  public void setProtokollErstellen(boolean protokollErstellen) {
    this.protokollErstellen = protokollErstellen;
  }

  public long getMaximaleAnzahlSitzberechnungenInVariantenberechnung() {
    return maximaleAnzahlSitzberechnungenInVariantenberechnung;
  }

  public void setMaximaleAnzahlSitzberechnungenInVariantenberechnung(
      long maximaleAnzahlSitzberechnungenInVariantenberechnung) {
    this.maximaleAnzahlSitzberechnungenInVariantenberechnung = maximaleAnzahlSitzberechnungenInVariantenberechnung;
  }

  public Messages getMessages() {
    return messages;
  }

  public void setMessages(Messages messages) {
    this.messages = messages;
  }

  public SystemLogWriter getSystemLogWriter() {
    return systemLogWriter;
  }

  public void setSystemLogWriter(SystemLogWriter systemLogWriter) {
    this.systemLogWriter = systemLogWriter;
  }

  public PersonendatenFormatter getPersonendatenFormatter() {
    return personendatenFormatter;
  }

  public void setPersonendatenFormatter(PersonendatenFormatter personendatenFormatter) {
    this.personendatenFormatter = personendatenFormatter;
  }

  public SitzeFactory getSitzeFactory() {
    return sitzeFactory;
  }

  public void setSitzeFactory(SitzeFactory sitzeFactory) {
    this.sitzeFactory = sitzeFactory;
  }


}
