
package de.ivu.elect.presentation.security;

import java.io.Serializable;

import javax.inject.Inject;

import de.ivu.elect.business.benutzerverwaltung.entity.Benutzer;
import de.ivu.elect.business.benutzerverwaltung.entity.BenutzerEinsatzort;
import de.ivu.elect.business.mandant.entity.Mandant;
import de.ivu.elect.presentation.mandant.MandantNameFormatter;

public class PrincipalNameFormatter implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient MandantNameFormatter mandantNameFormatter;

  public PrincipalNameFormatter() {
    super();
  }

  public String getName(Benutzer benutzer, BenutzerEinsatzort benutzerEinsatzort) {
    if (benutzer == null) {
      return "";
    }

    String benutzerkennung = benutzer.getBenutzerkennung();

    Mandant mandant = benutzer.getMandant();

    if (mandant != null && !mandant.getArt().isOhneMandant()) {
      benutzerkennung += " [" + mandantNameFormatter.formatiereName(mandant) + "]";
    }

    if (benutzerEinsatzort != null) {
      benutzerkennung += " (" + benutzerEinsatzort.getName() + ")";
    }

    return benutzerkennung;
  }
}
