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

import java.util.List;
import java.util.function.Function;

import javax.ejb.Stateless;
import javax.enterprise.inject.Specializes;

import org.primefaces.model.UploadedFile;

import de.ivu.elect.business.dokumente.entity.DokumentArchiveUploadResultEntry;
import de.ivu.elect.business.dokumente.entity.DokumentArchiveUploadResultStatus;
import de.ivu.elect.business.dokumente.entity.DokumentVorlage;
import de.ivu.elect.business.dokumente.entity.DokumentVorlageAnlageArt;
import de.ivu.elect.business.dokumente.entity.DokumentVorlageArt;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.Wahltermin;

@Stateless
@Specializes
public class BaseDokumentVorlageBoundaryCreate extends DokumentVorlageBoundaryCreate {

  public BaseDokumentVorlageBoundaryCreate() {
    super();
  }

  public void save(DokumentVorlage dokumentVorlage, UploadedFile file, Wahl wahl, Wahltermin wahltermin) {
    create.save(dokumentVorlage, file, wahl, wahltermin);
  }

  public List<DokumentArchiveUploadResultEntry> saveArchive(UploadedFile archive, Wahl wahl, Wahltermin wahltermin, List<DokumentVorlageArt> dokumentVorlageArten, Function<DokumentVorlageAnlageArt, DokumentArchiveUploadResultStatus> updateStrategie, DokumentVorlageAnlageArt dokumentVorlageAnlageArt) {
    return create.saveArchive(archive, wahl, wahltermin, dokumentVorlageArten, updateStrategie, dokumentVorlageAnlageArt);
  }

  public List<DokumentArchiveUploadResultEntry> readArchive(UploadedFile archive, Wahl wahl, Wahltermin wahltermin, List<DokumentVorlageArt> dokumentVorlageArten, Function<DokumentVorlageAnlageArt, DokumentArchiveUploadResultStatus> updateStrategie, DokumentVorlageAnlageArt dokumentVorlageAnlageArt) {
    return create.readArchive(archive, wahl, wahltermin, dokumentVorlageArten, updateStrategie, dokumentVorlageAnlageArt);
  }
}
