
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;

public class DateienExportierenBackgroundServiceExportContext implements Serializable {

  private static final long serialVersionUID = 1L;

  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) {
    super();

    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;
  }
}
