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

import java.util.HashMap;
import java.util.Map;

import de.ivu.elect.business.entschaedigung.entity.Auszahlung;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.protokollierung.AttributTyp;
import de.ivu.elect.jee.protokollierung.VorherNachherWert;

public class AuszahlungProtokollierungEntschaedigung extends AbstractAuszahlungProtokollierung {

  protected static final String PROTOKOLL_ATTRIBUTE_MSG_KEY = AbstractAuszahlungProtokollierung.PROTOKOLL_ATTRIBUTE_MSG_KEY_PREFIX + "ENTSCHAEDIGUNG";

  private AuszahlungProtokollierungEntschaedigung() {
    super();
  }

  public static void protokolliereCreate(Auszahlung auszahlung, Messages messages) {
    protokolliere(auszahlung, messages, "CREATE");
  }

  public static void protokolliereDelete(Auszahlung auszahlung, Messages messages) {
    protokolliere(auszahlung, messages, "DELETE");
  }

  public static void protokolliereDeleteAll(Auszahlung auszahlung, Messages messages) {
    protokolliere(auszahlung, messages, "DELETE_ALL");
  }

  // ELECTMUC-2909
  private static void protokolliere(Auszahlung auszahlung, Messages messages, String attributeMsgKeySuffix) {
    Map<String, VorherNachherWert> vorherNachherWertPerAttribute = new HashMap<>();
    vorherNachherWertPerAttribute.put(PROTOKOLL_ATTRIBUTE_MSG_KEY,
        new VorherNachherWert(AttributTyp.STRING, "", messages.getMessageForMessageKey(PROTOKOLL_ATTRIBUTE_MSG_KEY + "." + attributeMsgKeySuffix)));

    addProtokollEintrag(auszahlung, vorherNachherWertPerAttribute);
  }
}
