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

import de.ivu.elect.business.benutzerverwaltung.entity.Benutzer;
import de.ivu.elect.business.exchange.control.AbstractMandantExchangeContext;
import de.ivu.elect.business.mandant.entity.Mandant;


import static java.util.Objects.nonNull;

public class BenutzerExchangeContext extends AbstractMandantExchangeContext {

  private static final long serialVersionUID = 1L;

  private final String eingeloggterBenutzerKennung;

  private boolean passwortwechselErzwingen = false;

  private final boolean export;

  public BenutzerExchangeContext(Mandant mandant, String eingeloggterBenutzerKennung, boolean export) {
    super(mandant);
    this.eingeloggterBenutzerKennung = eingeloggterBenutzerKennung;
    this.export = export;
  }

  public BenutzerExchangeContext(Mandant mandant, Benutzer eingeloggterBenutzer, boolean passwortwechselErzwingen, boolean export) {
    this(mandant, eingeloggterBenutzer, export);
    this.passwortwechselErzwingen = passwortwechselErzwingen;
  }

  public BenutzerExchangeContext(Mandant mandant, Benutzer eingeloggterBenutzer, boolean export) {
    super(mandant);
    if (nonNull(eingeloggterBenutzer)) {
      eingeloggterBenutzerKennung = eingeloggterBenutzer.getBenutzerkennung();
    } else {
      eingeloggterBenutzerKennung = null;
    }
    this.export = export;
  }

  public String getEingeloggterBenutzerKennung() {
    return eingeloggterBenutzerKennung;
  }

  public boolean isPasswortwechselErzwingen() {
    return passwortwechselErzwingen;
  }

  public void setPasswortwechselErzwingen(boolean mussPasswortWechselnErzwingen) {
    this.passwortwechselErzwingen = mussPasswortWechselnErzwingen;
  }

  public boolean isExport() {
    return export;
  }
}
