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

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

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.Wahldurchfuehrungsgebiet;
import de.ivu.elect.business.wahl.entity.Wahl;

@Specializes
public class NlWasGebietCreate extends WasGebietCreate {

  @Inject
  private transient AWerteAktualisiererFactory aWerteAktualisiererFactory;

  @Override
  public void saveFromView(Gebiet entity) {
    super.saveFromView(entity);
    Wahl wahl = entity.getWahl();
    if (wahl != null && wahl.isPersistent()) {
      dao.flush();
      Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet = entity.castTo(Wahldurchfuehrungsgebiet.class).getEntity();
      AWerteAktualisierer aWerteAktualisierer = aWerteAktualisiererFactory.createAWerteAktualisierer(wahl);

      aWerteAktualisierer.aktualisiereAWerteFuerUebergeordneteGebieteVon(wahldurchfuehrungsgebiet);
    }
  }

}
