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

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

import de.ivu.elect.business.gruppe.boundary.NlGruppeEdit;
import de.ivu.elect.business.gruppe.entity.PolitischeGruppe;
import de.ivu.elect.business.wahlvorschlag.entity.Liste;

@Stateless
@Specializes
public class NlListeEdit extends ListeEdit {

  @Inject
  private transient NlGruppeEdit nlGruppeEdit;

  public NlListeEdit() {
    super();
  }

  @Override
  public void delete(Liste template) {
    deleteIncludingGruppe(template);
  }

  public void deleteIncludingGruppe(Liste template) {
    PolitischeGruppe politischeGruppe = template.getGruppe();

    super.delete(template);

    dao.flush();
    dao.clear();

    boolean politischeGruppeObsolet = politischeGruppe != null && dao.findByGruppe(politischeGruppe).isEmpty(); // ELECT-10435

    if (politischeGruppeObsolet) {
      nlGruppeEdit.deleteExcludingListen(politischeGruppe);
    }
  }

  public void deleteExcludingGruppe(Liste template) {
    super.delete(template);
  }
}
