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

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import javax.enterprise.context.ApplicationScoped;

import de.ivu.elect.business.ergebnis.entity.ErgebnisPK;
import de.ivu.elect.business.praesentation.entity.PraesentationUploadEntry;

@ApplicationScoped
public class PraesentationUploadStore implements Serializable {

  private static final Map<ErgebnisPK, PraesentationUploadEntry> store = new ConcurrentHashMap<>();

  private static final long serialVersionUID = 1L;

  public void put(ErgebnisPK ergebnisPK, PraesentationUploadEntry praesentationUploadEntry) {
    store.put(ergebnisPK, praesentationUploadEntry);
  }

  public PraesentationUploadEntry get(ErgebnisPK ergebnisPK) {
    return store.getOrDefault(ergebnisPK, PraesentationUploadEntry.EMPTY);
  }

  public Map<ErgebnisPK, PraesentationUploadEntry> getAll() {
    return new HashMap<>(store);
  }

}
