package de.ivu.elect.presentation.wahl;

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

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.CurrentCustomer;
import de.ivu.elect.business.wahl.entity.NlWahlart;
import de.ivu.elect.business.wahl.entity.Wahlart;

@Specializes
public class NlWahlCreateWahlartFilter extends WahlCreateWahlartFilter{
  private static final long serialVersionUID = 1L;

  @Inject
  private transient CurrentCustomer currentCustomer;


  @Override
  public List<Wahlart> filter(List<Wahlart> wahlarten) {
    // Nur Wahlendefinitionswahlarten anbieten
    // Zuert muss die Wahldefinition erstellt werden, die anderen Wahlarten werden beim Import von EML 110a angelegt

//    for (Wahlart wahlart : wahlarten) {
//      System.out.println("wahlart = " + wahlart);
//      System.out.println("wahlart.getName() = " + wahlart.getName());
//      System.out.println("NlWahlart.isZurAuswahlInWus(wahlart) = " + NlWahlart.isZurAuswahlInWus(wahlart));
//      System.out.println("NlWahlart.isDefinitionIgnoreCustomer(wahlart) = " + NlWahlart.isDefinitionIgnoreCustomer(wahlart));
//    }

    return super.filter(wahlarten).stream()
        .filter(NlWahlart::isZurAuswahlInWus)
        .collect(Collectors.toCollection(() -> new ArrayList<>(wahlarten.size())));
  }
}
