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

import java.io.Serializable;
import java.util.Collection;
import java.util.EnumSet;
import java.util.List;

import de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp;

public class WahlvorschlagsPersonTypResolver implements Serializable {

  private static final long serialVersionUID = 1L;

  private static final EnumSet<WahlvorschlagsPersonTyp> WAHLVORSCHLAGS_PERSON_TYPEN = EnumSet.complementOf(EnumSet.of(WahlvorschlagsPersonTyp.UNTERSTUETZER));
  private static final List<WahlvorschlagsPersonTyp> INDIVIDUELLE_WAHLVORSCHLAGS_PERSON_TYPEN = WahlvorschlagsPersonTyp.getIndividuelleWahlvorschlagsPersonTypen();

  public WahlvorschlagsPersonTypResolver() {
    super();
  }

  public boolean isSupported(WahlvorschlagsPersonTyp wahlvorschlagsPersonTyp) {
    return wahlvorschlagsPersonTyp != null && getWahlvorschlagsPersonTypen().contains(wahlvorschlagsPersonTyp);
  }

  public boolean isIndividuellSupported(WahlvorschlagsPersonTyp wahlvorschlagsPersonTyp) {
    return wahlvorschlagsPersonTyp != null && getIndividuelleWahlvorschlagsPersonTypen().contains(wahlvorschlagsPersonTyp);
  }

  public Collection<WahlvorschlagsPersonTyp> getWahlvorschlagsPersonTypen() {
    return WAHLVORSCHLAGS_PERSON_TYPEN;
  }

  public Collection<WahlvorschlagsPersonTyp> getIndividuelleWahlvorschlagsPersonTypen() {
    return INDIVIDUELLE_WAHLVORSCHLAGS_PERSON_TYPEN;
  }
}
