package de.ivu.elect.business.exchange.entity;

import java.io.Serializable;
import java.util.function.Function;

import javax.enterprise.inject.Instance;

import de.ivu.elect.business.exchange.control.AbstractExporter;
import de.ivu.elect.business.exchange.control.DateienImportExportFormatResolver;
import de.ivu.elect.business.wahl.entity.WahlOderWahltermin;

/**
 *  on 04.01.2017.
 */
public class DateienExportierenBackgroundServiceExportContext implements Serializable {

  private final Class<? extends AbstractExporter> exporterClass;

  private final Instance<? extends DateienImportExportFormatResolver> formatResolvers;

  private final Function<WahlOderWahltermin, Object> contextFct;

  public DateienExportierenBackgroundServiceExportContext(Class<? extends AbstractExporter> exporterClass, Instance<? extends DateienImportExportFormatResolver> formatResolvers, Function<WahlOderWahltermin, Object> contextFct) {
    this.exporterClass = exporterClass;
    this.formatResolvers = formatResolvers;
    this.contextFct = contextFct;
  }

  public Class<? extends AbstractExporter> getExporterClass() {
    return exporterClass;
  }

  public Instance<? extends DateienImportExportFormatResolver> getFormatResolvers() {
    return formatResolvers;
  }

  public Function<WahlOderWahltermin, Object> getContextFct() {
    return contextFct;
  }
}
