
package de.ivu.elect.sitzberechnung.verteilung;

import de.ivu.elect.sitzberechnung.Gruppe;
import de.ivu.elect.sitzberechnung.Listenverbindung;
import de.ivu.elect.sitzberechnung.SitzberechnungEntity;
import de.ivu.elect.sitzberechnung.SitzberechnungLokalisierung;

public class GruppeInVerteilung implements SitzberechnungEntity {

  private final Gruppe gruppe;

  private final Listenverbindung listenverbindung;

  public GruppeInVerteilung(Gruppe gruppe) {
    this(gruppe, null);
  }

  public GruppeInVerteilung(Listenverbindung listenverbindung) {
    this(null, listenverbindung);
  }

  private GruppeInVerteilung(Gruppe gruppe, Listenverbindung listenverbindung) {
    super();

    this.gruppe = gruppe;

    this.listenverbindung = listenverbindung;
  }

  @Override
  public String getKey() {
    if (gruppe != null) {
      return gruppe.getKey();
    }

    return listenverbindung.getKey();
  }

  public String getName(SitzberechnungLokalisierung sitzberechnungLokalisierung) {
    if (gruppe != null) {
      return sitzberechnungLokalisierung.getName(gruppe);
    }

    return sitzberechnungLokalisierung.getName(listenverbindung);
  }

  public Gruppe getGruppe() {
    return gruppe;
  }

  public Listenverbindung getListenverbindung() {
    return listenverbindung;
  }
}
