package de.ivu.elect.business.praesentation.boundary;

import de.ivu.elect.business.ergebnis.entity.Ergebnis;
import de.ivu.elect.business.ergebnis.entity.ErgebnisPK;
import de.ivu.elect.business.praesentation.entity.PraesentationStatistik;
import de.ivu.elect.business.praesentation.entity.PraesentationStatistikEntry;

import javax.enterprise.context.ApplicationScoped;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 *  on 18.06.2015.
 */
@ApplicationScoped
public class PraesentationStatistikStore implements Serializable {

  private static final long serialVersionUID = 1L;

  private final Map<ErgebnisPK, PraesentationStatistik> statistiken = new ConcurrentHashMap<>();

  public List<PraesentationStatistikEntry> getStatistikFuerErgebnis(ErgebnisPK ergebnisPK) {
    if (statistiken.containsKey(ergebnisPK)) {
      return statistiken.get(ergebnisPK).getEntries();
    }
    return Collections.emptyList();
  }

  public PraesentationStatistik getPraesentationStatistik(ErgebnisPK ergebnisPK) {
    return statistiken.computeIfAbsent(ergebnisPK, x -> new PraesentationStatistik());
  }

}
