package de.ivu.elect.presentation.wahllokalsystem;

import de.ivu.elect.business.wahllokalsystem.boundary.WahllokalsystemStatusSearchParameters;
import de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemStatusDokumentEventType;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamicform.AbstractBooleanFilterKriteriumProperty;
import de.ivu.elect.jee.presentation.dynamicform.BooleanFilterKriterium;

public class WahllokalSystemDokumentBooleanFilterKriteriumProperty extends AbstractBooleanFilterKriteriumProperty {

  private final WahllokalsystemStatusDokumentEventType wahllokalsystemStatusDokumentEventType;

  private final WahllokalsystemStatusSearchParameters wahllokalsystemStatusSearchParameters;

  private final Messages messages;

  public WahllokalSystemDokumentBooleanFilterKriteriumProperty(WahllokalsystemStatusDokumentEventType wahllokalsystemStatusDokumentEventType, WahllokalsystemStatusSearchParameters wahllokalsystemStatusSearchParameters, Messages messages) {
    this.wahllokalsystemStatusDokumentEventType = wahllokalsystemStatusDokumentEventType;
    this.wahllokalsystemStatusSearchParameters = wahllokalsystemStatusSearchParameters;
    this.messages = messages;
  }

  @Override
  public BooleanFilterKriterium getValue() {
    return wahllokalsystemStatusSearchParameters.getDokumentVorhandenKriterium().get(wahllokalsystemStatusDokumentEventType);
  }

  @Override
  public void setValue(BooleanFilterKriterium booleanFilterKriterium) {
    wahllokalsystemStatusSearchParameters.getDokumentVorhandenKriterium().put(wahllokalsystemStatusDokumentEventType, booleanFilterKriterium);

  }

  @Override
  public String getDefaultLabel() {
    return getMessage(wahllokalsystemStatusDokumentEventType);
  }

  @Override
  public Messages getMessages() {
    return messages;
  }
}
