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

import de.ivu.elect.business.ergebnis.control.AbstractNachErfassungsgebietStimmenSearchParameters;
import de.ivu.elect.business.ergebnis.entity.NachErfassungsgebietStimmenSearchGebietsauswahl;
import de.ivu.elect.jee.presentation.dynamicform.AbstractEnumProperty;

import java.util.List;

import static java.util.Arrays.asList;

public final class NachErfassungsgebietStimmenSearchGebietsauswahlProperty extends AbstractEnumProperty<NachErfassungsgebietStimmenSearchGebietsauswahl> {

  private final AbstractNachErfassungsgebietStimmenSearchParameters searchParameters;

  public NachErfassungsgebietStimmenSearchGebietsauswahlProperty(AbstractNachErfassungsgebietStimmenSearchParameters searchParameters) {
    this.searchParameters = searchParameters;
  }

  @Override
  public NachErfassungsgebietStimmenSearchGebietsauswahl getValue() {
    return searchParameters.getGebietsauswahl();
  }

  @Override
  public void setValue(NachErfassungsgebietStimmenSearchGebietsauswahl nachErfassungsgebietStimmenSearchGebietsauswahl) {
    searchParameters.setGebietsauswahl(nachErfassungsgebietStimmenSearchGebietsauswahl);
  }

  @Override
  public List<NachErfassungsgebietStimmenSearchGebietsauswahl> getValues() {
    return asList(NachErfassungsgebietStimmenSearchGebietsauswahl.values());
  }

  @Override
  public String getDefaultLabel() {
    return getMessage("gruppe.nach.gebiet.gebiet.auswahl");
  }

  @Override
  public boolean getDefaultRequired() {
    return true;
  }

  @Override
  protected Class<NachErfassungsgebietStimmenSearchGebietsauswahl> getEnumClass() {
    return NachErfassungsgebietStimmenSearchGebietsauswahl.class;
  }
}
