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

import java.util.Collection;

import org.apache.deltaspike.core.api.scope.ConversationGroup;
import org.apache.deltaspike.core.api.scope.GroupedConversationScoped;

import de.ivu.elect.business.benutzerverwaltung.entity.Benutzer;
import de.ivu.elect.business.benutzerverwaltung.entity.BenutzerParameterWerte;
import de.ivu.elect.business.konfiguration.boundary.CustomParameterSearchParameters;
import de.ivu.elect.business.konfiguration.entity.CustomParameterKategorie;
import de.ivu.elect.business.konfiguration.entity.CustomParameterTemplate;


import static java.util.Arrays.asList;

@GroupedConversationScoped
@ConversationGroup(AbstractBenutzerParameterSearchParameters.class)
public class BenutzerParameterSearchParameters extends AbstractBenutzerParameterSearchParameters implements CustomParameterSearchParameters {

  private static final long serialVersionUID = 1L;

  private CustomParameterKategorie kategorie;

  private Benutzer benutzer;

  public Benutzer getBenutzer() {
    return benutzer;
  }

  public void setBenutzer(Benutzer benutzer) {
    this.benutzer = benutzer;
  }

  @Override
  public CustomParameterKategorie getKategorie() {
    return kategorie;
  }

  @Override
  public void setKategorie(CustomParameterKategorie kategorie) {
    this.kategorie = kategorie;
  }

  @Override
  public Collection<CustomParameterTemplate> getSupportedTemplates() {
    return asList(BenutzerParameterWerte.values());
  }

  private boolean nurUngueltige;
  @Override
  public void setNurUngueltige(boolean nurUngueltige) {
    this.nurUngueltige = nurUngueltige;
  }

  @Override
  public boolean isNurUngueltige() {
    return nurUngueltige;
  }

  @Override
  public void reset() {
    super.reset();
    nurUngueltige = false;
  }

}
