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

import java.util.Date;
import java.util.Map;

import de.ivu.elect.business.benutzerverwaltung.entity.AbstractBenutzer;
import de.ivu.elect.business.benutzerverwaltung.entity.Benutzer;
import de.ivu.elect.business.entschaedigung.entity.Auszahlung;
import de.ivu.elect.jee.protokollierung.Eintrag;
import de.ivu.elect.jee.protokollierung.ProtokollThreadLocal;
import de.ivu.elect.jee.protokollierung.VorherNachherWert;

public class AbstractAuszahlungProtokollierung {

  protected static final String PROTOKOLL_ATTRIBUTE_MSG_KEY_PREFIX = "auszahlung.protokollierung.";

  protected AbstractAuszahlungProtokollierung() {
    super();
  }

  protected static void addSystemProtokollEintrag(Auszahlung auszahlung, Map<String, VorherNachherWert> vorherNachherWertPerAttribute) {
    addProtokollEintrag(AbstractBenutzer.SYSTEM, auszahlung, vorherNachherWertPerAttribute);
  }

  protected static void addProtokollEintrag(Benutzer benutzer, Auszahlung auszahlung, Map<String, VorherNachherWert> vorherNachherWertPerAttribute) {
    addProtokollEintrag(benutzer, new Date(), auszahlung, vorherNachherWertPerAttribute);
  }

  protected static void addProtokollEintrag(Benutzer benutzer, Date zeitpunkt, Auszahlung auszahlung, Map<String, VorherNachherWert> vorherNachherWertPerAttribute) {
    ProtokollThreadLocal.setBenutzerKennung(benutzer.getBenutzerkennung());
    ProtokollThreadLocal.setZeitpunkt(zeitpunkt);

    addProtokollEintrag(auszahlung, vorherNachherWertPerAttribute);
  }

  protected static void addProtokollEintrag(Auszahlung auszahlung, Map<String, VorherNachherWert> vorherNachherWertPerAttribute) {
    Eintrag.addAendernProtokollEintrag(ProtokollThreadLocal.getOrCreate(), auszahlung, vorherNachherWertPerAttribute);
  }
}
