
package de.ivu.elect.business.personenpruefung.control.wahlrecht.kriterium;

import java.util.Collection;

import de.ivu.elect.business.person.entity.Personendaten;
import de.ivu.elect.business.personenpruefung.control.AbstractPersonendatenMatcherKriterium;
import de.ivu.elect.business.personenpruefung.control.wahlrecht.WahlrechtPflichtangabe;
import de.ivu.elect.jee.faces.Messages;

public class PflichtangabeKriterium extends AbstractPersonendatenMatcherKriterium {

  private static final long serialVersionUID = 1L;

  private final WahlrechtPflichtangabe pflichtangabe;

  public PflichtangabeKriterium(Collection<Class< ? extends Personendaten>> personendatenClasses, WahlrechtPflichtangabe pflichtangabe) {
    super(personendatenClasses);

    this.pflichtangabe = pflichtangabe;
  }

  public WahlrechtPflichtangabe getPflichtangabe() {
    return pflichtangabe;
  }

  @Override
  protected boolean matchesInternal(Personendaten personendaten) {
    return getPflichtangabe().isVorhanden(personendaten);
  }

  @Override
  public String getDescription(Messages messages) {
    return messages.getMessageForMessageKey(getDescriptionMsgKey(), getPflichtangabe().getLabel(messages));
  }

  @Override
  public String toString() {
    return getClass().getSimpleName() + " [pflichtangabe = " + getPflichtangabe() + "]";
  }
}
