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

import java.util.List;

import de.ivu.elect.business.ergebnis.control.AbstractKumulierteStimmenSearchParameters;
import de.ivu.elect.business.ergebnis.entity.Stimmabgabeart;
import de.ivu.elect.jee.presentation.dynamicform.AbstractEnumProperty;


import static java.util.Arrays.asList;

public class KumulierteStimmenSearchStimmabgabeartProperty extends AbstractEnumProperty<Stimmabgabeart> {

  private final AbstractKumulierteStimmenSearchParameters searchParameters;

  private final List<Stimmabgabeart> values;

  public KumulierteStimmenSearchStimmabgabeartProperty(AbstractKumulierteStimmenSearchParameters searchParameters) {
    this(searchParameters, asList(Stimmabgabeart.values()));
  }

  public KumulierteStimmenSearchStimmabgabeartProperty(AbstractKumulierteStimmenSearchParameters searchParameters, List<Stimmabgabeart> values) {
    super();
    this.searchParameters = searchParameters;
    this.values = values;
  }

  @Override
  public Stimmabgabeart getValue() {
    return searchParameters.getStimmabgabeart();
  }

  @Override
  public void setValue(Stimmabgabeart stimmabgabeart) {
    searchParameters.setStimmabgabeart(stimmabgabeart);
  }

  @Override
  public List<Stimmabgabeart> getValues() {
    return values;
  }

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

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

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