
package de.ivu.elect.presentation.benutzerverwaltung.form;

import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;

import de.ivu.elect.business.benutzerverwaltung.boundary.BenutzerEinsatzortExtendedDAO;
import de.ivu.elect.business.benutzerverwaltung.entity.BenutzerEinsatzort;
import de.ivu.elect.business.benutzerverwaltung.entity.BenutzerEinsatzortPK;
import de.ivu.elect.business.benutzerverwaltung.entity.BenutzerEinsatzortUK;
import de.ivu.elect.business.mandant.entity.MandantUK;
import de.ivu.elect.jee.entity.DAO;
import de.ivu.elect.jee.faces.AbstractEntityUniqueUKFacesValidator;
import de.ivu.elect.presentation.mandant.MandantSessionSelect;

@RequestScoped
public class BenutzerEinsatzortUniqueUKFacesValidator extends AbstractEntityUniqueUKFacesValidator<BenutzerEinsatzort, BenutzerEinsatzortPK, BenutzerEinsatzortUK> {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient BenutzerEinsatzortExtendedDAO benutzerEinsatzortDao;

  @Inject
  private transient MandantSessionSelect mandantSessionSelect;

  public BenutzerEinsatzortUniqueUKFacesValidator() {
    super();
  }

  @Override
  protected BenutzerEinsatzortUK createUK(Object value) {
    return new BenutzerEinsatzortUK((String) value, new MandantUK(mandantSessionSelect.getMandantNummer()));
  }

  @Override
  protected DAO<BenutzerEinsatzort, BenutzerEinsatzortPK, BenutzerEinsatzortUK> getDao() {
    return benutzerEinsatzortDao;
  }
}
