package de.ivu.elect.jee.protokollierung;

import java.io.Serializable;

import javax.annotation.PostConstruct;
import javax.enterprise.context.ApplicationScoped;

/**
 * Schalter für Protokollierung
 * in konkreter (kundenspezifischer) Anwendung spezialisieren, um Protokollierung zu aktivieren
 */
@ApplicationScoped
public class ProtokollAktiv implements Serializable {

  /**
   * static, weil auch direkt im ProtokollEntityListener, AbstractActionMenuModelBuilder und ProtokollAsyncSchreibBean Zugriff erfolgt! (ohne CDI)
   */
  public static boolean isProtokollierungAktiv = true;

  // ELECT-5642
  public static boolean isProtokollierungAsynchron = false;

  public static boolean isProtokollierungAktiv() {
    return isProtokollierungAktiv;
  }

  public static boolean isIsProtokollierungAsynchron() {
    return isProtokollierungAsynchron;
  }

  public static void setProtokollierungAktiv(boolean aktiv) {
    ProtokollAktiv.isProtokollierungAktiv  = aktiv;
  }

  @PostConstruct
  public void init() {
    isProtokollierungAktiv = initIsProtokollierungAktiv();
    isProtokollierungAsynchron = initIsProtokollierungAsynchron();
  }

  /**
   * Diese Methode überschreiben, wenn das Protokollieren in der Anwendung erlaubt seib soll
   *
   * @return
   */
  public boolean initIsProtokollierungAktiv() {
    return true;
  }

  public boolean initIsProtokollierungAsynchron() {
    return true;
  }


}
