
package de.ivu.elect.presentation.kandidatur.table;

import javax.annotation.Nullable;

import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.business.kandidatur.entity.KandidaturKumulierteStimmen;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;
import de.ivu.elect.presentation.table.AbstractColumnEntry;

// Cf. KandidaturGewaehltStimmzettelPositionColumn!
public class KandidaturKumulierteStimmenStimmzettelPositionColumn extends AbstractColumnEntry<KandidaturKumulierteStimmen> {

  private static final long serialVersionUID = 1L;

  private final KandidaturGewaehltStimmzettelPositionColumn column;

  public KandidaturKumulierteStimmenStimmzettelPositionColumn(Messages messages) {
    super(messages);

    this.column = new KandidaturGewaehltStimmzettelPositionColumn(messages);
  }

  @Override
  public ColumnType getType() {
    return column.getType();
  }

  @Override
  public String getHeader() {
    return column.getHeader();
  }

  @Override
  public Object getValue(KandidaturKumulierteStimmen kandidaturKumulierteStimmen) {
    if (kandidaturKumulierteStimmen != null) {
      return kandidaturKumulierteStimmen.getStimmzettelPosition(getKandidatur(kandidaturKumulierteStimmen));
    }

    return null;
  }

  @Nullable
  protected Kandidatur getKandidatur(KandidaturKumulierteStimmen kandidaturKumulierteStimmen) {
    return kandidaturKumulierteStimmen.getListenkandidatur();
  }
}
