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

import java.io.Serializable;

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

import de.ivu.elect.business.wahl.entity.WahlParameterWerte;

public class WahlParameterGeaendertEvent implements Serializable {

  private static final long serialVersionUID = 1L;

  private final WahlParameterWerte wahlParameterWerte;

  private final String neuerWert;

  @Inject
  private Event<WahlParameterGeaendertEvent> event;

  protected WahlParameterGeaendertEvent() {
    this(null, null);
  }

  public WahlParameterGeaendertEvent(WahlParameterWerte wahlParameterWerte, @Nullable String neuerWert) {
    super();

    this.wahlParameterWerte = wahlParameterWerte;
    this.neuerWert = neuerWert;
  }

  public WahlParameterWerte getWahlParameterWerte() {
    return wahlParameterWerte;
  }

  @Nullable
  public String getNeuerWert() {
    return neuerWert;
  }

  public void sendWertGeaendertEvent(WahlParameterWerte key, @Nullable String neuerWert) {
    event.fire(new WahlParameterGeaendertEvent(key, neuerWert));
  }

  @Override
  public String toString() {
    return "WahlParameterGeaendertEvent{" +
        "wahlParameterWerte=" + wahlParameterWerte +
        ", neuerWert='" + neuerWert + '\'' +
        '}';
  }
}
