
package de.ivu.elect.dokumente.kandidatur.statistik;

import java.util.function.Predicate;

import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.business.person.entity.Geschlecht;

/**
 *  on 07.11.2016.
 */
public enum GeschlechtFilter {
  INSGESAMT {

    @Override
    public Predicate<Kandidatur> filterKandidaturen() {
      return k -> true;
    }

    @Override
    public Predicate<Kandidat> filterKandidaten() {
      return k -> true;
    }
  },

  MAENNER {

    @Override
    public Predicate<Kandidatur> filterKandidaturen() {
      return k -> Geschlecht.MAENNLICH.equals(k.getGeschlecht());
    }

    @Override
    public Predicate<Kandidat> filterKandidaten() {
      return k -> Geschlecht.MAENNLICH.equals(k.getGeschlecht());
    }
  },

  FRAUEN {

    @Override
    public Predicate<Kandidatur> filterKandidaturen() {
      return k -> Geschlecht.WEIBLICH.equals(k.getGeschlecht());
    }

    @Override
    public Predicate<Kandidat> filterKandidaten() {
      return k -> Geschlecht.WEIBLICH.equals(k.getGeschlecht());
    }
  };

  public abstract Predicate<Kandidatur> filterKandidaturen();

  public abstract Predicate<Kandidat> filterKandidaten();
}
