
package de.ivu.elect.core.exchange.ergebnis;

import java.util.List;

import javax.enterprise.inject.Instance;
import javax.inject.Inject;

import de.ivu.elect.business.ergebnis.control.SitzeImportContext;
import de.ivu.elect.business.ergebnis.control.SitzeImportExchange;
import de.ivu.elect.business.ergebnis.entity.Sitze;
import de.ivu.elect.exchange.AbstractImportExchange;

/**
 * <p>
 * Liefert alle {@link SitzeImportMapper} für den Import von Sitzen. In der Methode
 * {@link AbstractImportExchange#importiere(java.io.InputStream, de.ivu.elect.business.datei.entity.FileType, Object)}
 * wird der eigentliche Import an einen geeigneten {@link SitzeImportMapper} delegiert, also an
 * {@link SitzeImportMapper#deserialize(java.io.InputStream, SitzeImportContext)}.
 * </p>
 * <p>
 * Die Auswahl des geeigneten Mappers passiert automatisch an Hand der Implementierungen der Methoden
 * {@link de.ivu.elect.exchange.ExchangeMapper#getFileType()} und
 * {@link de.ivu.elect.exchange.ExchangeMapper#isAcceptContext(Context context)}
 */
public class DefaultSitzeImportExchange extends AbstractImportExchange<List<Sitze>, SitzeImportContext>
    implements
      SitzeImportExchange {

  @Inject
  private transient Instance<SitzeImportMapper> mapper;

  @Override
  protected Iterable<SitzeImportMapper> getAllSupportedMapper() {
    return mapper;
  }

}
