
package de.ivu.elect.business.kandidatur.control;

import de.ivu.elect.jee.presentation.dynamicform.AbstractEnumProperty;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class WahlvorschlagImporterZulassungsVerhaltenProperty
    extends
      AbstractEnumProperty<WahlvorschlagImporterZulassungsVerhalten> {

  private final WahlvorschlagImportContext wahlvorschlagImportContext;

  public WahlvorschlagImporterZulassungsVerhaltenProperty(WahlvorschlagImportContext wahlvorschlagImportContext) {
    this.wahlvorschlagImportContext = wahlvorschlagImportContext;
  }

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

  @Override
  public WahlvorschlagImporterZulassungsVerhalten getValue() {
    return wahlvorschlagImportContext.getZulassungsVerhalten();
  }

  @Override
  public void setValue(WahlvorschlagImporterZulassungsVerhalten value) {
    wahlvorschlagImportContext.setZulassungsVerhalten(value);
  }

  @Override
  public List<WahlvorschlagImporterZulassungsVerhalten> getValues() {
    return Arrays.stream(WahlvorschlagImporterZulassungsVerhalten.values())
            .filter(v -> !v.isZulassungsstatusImportieren())
            .collect(Collectors.toList());
  }

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

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

  @Override
  public String getDefaultLabel() {
    return getMessage("wahlvorschlag.import.zulassungs.verhalten.label");
  }
}
