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

import de.ivu.elect.business.wahl.control.WahlOderWahlterminSystem;
import de.ivu.elect.business.wahl.entity.WahlOderWahltermin;

import javax.inject.Inject;
import java.io.Serializable;

/**
 *  on 04.07.2017.
 */
public class WahlOderWahlterminSessionSelect implements Serializable {

  @Inject
  private transient WahlOderWahlterminSystem wahlOderWahlterminSystem;

  @Inject
  private transient WahlSessionSelector wahlSessionSelector;


  @Inject
  private transient WahlterminSessionSelect wahlterminSessionSelect;

  public boolean isSelected() {
    if (wahlOderWahlterminSystem.isWahlSystem()) {
      return wahlSessionSelector.isSelected();
    }
    if (wahlOderWahlterminSystem.isWahlterminSystem()) {
      return wahlterminSessionSelect.isSelected();
    }

    throw new IllegalStateException();
  }


  public WahlOderWahltermin getEntity() {
    if (wahlOderWahlterminSystem.isWahlSystem()) {
      return wahlSessionSelector.getEntity();
    }
    if (wahlOderWahlterminSystem.isWahlterminSystem()) {
      return wahlterminSessionSelect.getEntity();
    }

    throw new IllegalStateException();
  }
}
