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

import java.util.List;

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

import de.ivu.elect.business.wahl.control.WahlParameterGeaendertEvent;
import de.ivu.elect.business.wahl.entity.WahlParameter;
import de.ivu.elect.business.wahl.entity.WahlParameterWerte;

@Stateless
public class WahlParameterEdit extends AbstractWahlParameterEdit {

  @Inject
  private transient WahlParameterGeaendertEvent wahlParameterGeaendertEvent;

  public WahlParameterEdit() {
    super();
  }

  @Override
  public void save(WahlParameter entity) {
    sendWahlParameterChangeEvent(entity);
    super.save(entity);
  }

  public void save(List<WahlParameter> entities) {
    for (WahlParameter entity : entities) {
      sendWahlParameterChangeEvent(entity);
      validate(entity);
    }
    flushToSave();
  }

  public void sendWahlParameterChangeEvent(WahlParameter entity) {
    if (entity.hasChangedWert()) {
      wahlParameterGeaendertEvent.sendWertGeaendertEvent(WahlParameterWerte.valueOf(entity.getKey()), entity.getWert());
    }
  }
}
