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

import javax.ejb.Stateless;
import javax.inject.Inject;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import de.ivu.elect.business.konfiguration.entity.ElectKonfigurationWerte;
import de.ivu.elect.business.konfiguration.entity.KonfigurationLoader;
import de.ivu.elect.jee.performance.PerformanceStore;
import de.ivu.elect.jee.startup.PostStartup;

@Stateless
public class PerformanceStatistikPostStartup implements PostStartup {

  private static final Logger LOG = LoggerFactory.getLogger(PerformanceStatistikPostStartup.class);

  @Inject
  private transient KonfigurationLoader konfigurationLoader;

  @Override
  public void postStartup() {
    if (isStatistikAutomatischAktivieren()) {
      PerformanceStore.aktiviereStatistik();
      LOG.info("Performace Statistiken aktiviert");
    } else {
      PerformanceStore.deaktiviereStatistik();
      LOG.info("Performace Statistiken nicht aktiviert");
    }
    if (isStatistikLogausagebenAutomatischAktivieren()) {
      PerformanceStore.aktiviereStatistikLogging();
      LOG.info("Performace Statistiken detaillierte Logausagaben aktiviert");
    } else {
      PerformanceStore.deaktiviereStatistikLogging();
      LOG.info("Performace Statistiken detaillierte Logausagaben nicht aktiviert");
    }
  }

  private boolean isStatistikAutomatischAktivieren() {
    return konfigurationLoader.resolveBooleanValue(ElectKonfigurationWerte.PERFORMANCE_STATISTIKEN_AKTIVIEREN);
  }

  private boolean isStatistikLogausagebenAutomatischAktivieren() {
    return konfigurationLoader.resolveBooleanValue(ElectKonfigurationWerte.PERFORMANCE_STATISTIKEN_DETAILLIERTE_LOGAUSGABEN);
  }
}
