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

import javax.enterprise.event.Event;
import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.boundary.GebietDAO;
import de.ivu.elect.business.stimmzettel.boundary.StimmzettelPruefer;
import de.ivu.elect.business.stimmzettel.entity.Stimmzettel;

public class StimmzettelCreate extends AbstractStimmzettelCreate {

  @Inject
  private transient GebietDAO gebietDAO;

  @Inject
  private transient StimmzettelPruefer stimmzettelPruefer;

  @Inject
  private transient Event<StimmzettelChangedEvent> stimmzettelKopfdatenAktualisierenEventEvent;

  @Override
  public void save(Stimmzettel entity) {
    stimmzettelPruefer.pruefeStimmzettel(entity);
    entity.setGebiet(gebietDAO.attach(entity.getGebiet()));
    super.save(entity);
    stimmzettelKopfdatenAktualisierenEventEvent.fire(new StimmzettelChangedEvent(entity.getGebiet().getPk()));
  }
}
