
package de.ivu.elect.business.wahlvorschlag.control;

import javax.ejb.Stateless;
import javax.inject.Inject;

import de.ivu.elect.business.wahlvorschlag.boundary.ListeDAO;
import de.ivu.elect.business.wahlvorschlag.entity.Liste;
import de.ivu.elect.business.wahlvorschlag.entity.Listenverbindung;
import de.ivu.elect.jee.exception.ElectCommonException;

@Stateless
public class ListenverbindungCreate extends AbstractListenverbindungCreate {

  @Inject
  ListeDAO listeDAO;

  @Override
  public void save(Listenverbindung entity) {
    validate(entity);

    super.save(entity);

    for (Liste liste : entity.getListen()) {
      Liste listeAttached = attach(liste);
      listeAttached.setListenverbindung(entity);
    }
  }

  private void validate(Listenverbindung entity) {
    if (entity.getListen().size() < 2) {
      throw new ElectCommonException("listenverbindung.create.error.mind.2.listen");
    }
  }

  private Liste attach(Liste liste) {
    return listeDAO.attach(liste);
  }
}
