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

import java.io.Serializable;
import java.util.ArrayList;

import javax.ejb.Stateless;

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 ListenverbindungEdit extends AbstractListenverbindungEdit implements Serializable {

  private static final long serialVersionUID = 1L;

  public ListenverbindungEdit() {
    super();
  }

  @Override
  protected void validate(Listenverbindung listenverbindung) {
    super.validate(listenverbindung);

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

  @Override
  public void delete(Listenverbindung template) {
    Listenverbindung listenverbindung = getAttachedEntity(template);

    for (Liste liste : new ArrayList<>(listenverbindung.getListen())) {
      liste.setListenverbindung(null);
    }

    super.delete(listenverbindung);
  }
}
