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

import java.io.Serializable;

import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.NoResultException;

import de.ivu.elect.business.benutzerverwaltung.boundary.BenutzerDAO;

@Stateless
public class UniqueBenutzerUKValidator implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  private BenutzerDAO benutzerDAO;

  public UniqueBenutzerUKValidator() {
    super();
  }

  public boolean isUniqueBenutzerUK(Benutzer entity) {
    return isUniqueBenutzerUK(entity.getPk(), entity.getBenutzerUK());
  }

  public boolean isUniqueBenutzerUK(BenutzerPK pk, BenutzerUK uk) {
    try {
      return getBenutzerByUK(uk).getPk().equals(pk);
    } catch (NoResultException ignored) {
      // Do nothing - be happy.
    }

    return true;
  }

  protected Benutzer getBenutzerByUK(BenutzerUK uk) {
    return benutzerDAO.findByUK(uk);
  }
}
