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

import java.io.Serializable;
import java.util.Collection;

import de.ivu.elect.business.ergebnis.entity.Sitze;
import de.ivu.elect.business.ergebnis.entity.SitzeZusammengefasst;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gruppe.entity.Gruppe;
import de.ivu.elect.jee.entity.customdata.EmptyCustomData;

/**
 *  on 17.06.2016.
 */
public class SitzeZusammenfasser implements Serializable {

  private static final long serialVersionUID = 1L;

  /**
   * Antwortet ein neu erzeugtes Sitze-Objekt für die Anzeige, das die Summe einer Menge von gegebenen Sitze-Objekten
   * darstellt.
   *
   * @param id
   *          eine eindeutige ID, die zum Erzeugen eines neuen Sitze-Objekts verwendet werden kann
   */
  public Sitze fasseSitzeZusammen(Gruppe gruppe, Gebiet gebiet, Collection<Sitze> zusammenzufassendeSitze, Long id) {
    Long anzahlSitze = 0L;
    Long anzahlAnspruch = 0L;
    for (Sitze sitze : zusammenzufassendeSitze) {
      anzahlSitze += sitze.getAnzahl();
      anzahlAnspruch += sitze.getAnzahlAnspruch();
    }
    return new SitzeZusammengefasst(EmptyCustomData.INSTANCE, gruppe, gebiet, anzahlSitze, anzahlAnspruch, id, this);
  }
}
