
package de.ivu.elect.was.sitzberechnung.control;

import static java.util.stream.Collectors.toSet;

import java.util.Collection;

import de.ivu.elect.business.ergebniskonflikt.entity.ErgebnisKonflikt;
import de.ivu.elect.was.sitzberechnung.entity.ElectSitzberechnungEntities;

public interface ElectErgebnisKonfliktMapper {

  default Collection<de.ivu.elect.sitzberechnung.konflikt.ErgebnisKonflikt> mapExtern(ElectSitzberechnungContext sitzberechnungContext, ElectSitzberechnungEntities sitzberechnungEntities,
      Collection<ErgebnisKonflikt> ergebnisKonflikte) {
    return ergebnisKonflikte.stream().map(ergebnisKonflikt -> mapExtern(sitzberechnungContext, sitzberechnungEntities, ergebnisKonflikt)).collect(toSet());
  }

  de.ivu.elect.sitzberechnung.konflikt.ErgebnisKonflikt mapExtern(ElectSitzberechnungContext sitzberechnungContext, ElectSitzberechnungEntities sitzberechnungEntities,
      ErgebnisKonflikt ergebnisKonflikt);

  default Collection<ErgebnisKonflikt> mapIntern(ElectSitzberechnungContext sitzberechnungContext, ElectSitzberechnungEntities sitzberechnungEntities,
      Collection<de.ivu.elect.sitzberechnung.konflikt.ErgebnisKonflikt> ergebnisKonflikte) {
    return ergebnisKonflikte.stream().map(ergebnisKonflikt -> mapIntern(sitzberechnungContext, sitzberechnungEntities, ergebnisKonflikt)).collect(toSet());
  }

  ErgebnisKonflikt mapIntern(ElectSitzberechnungContext sitzberechnungContext, ElectSitzberechnungEntities sitzberechnungEntities,
      de.ivu.elect.sitzberechnung.konflikt.ErgebnisKonflikt ergebnisKonflikt);
}
