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

import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.business.person.entity.AbstractPersonendaten;
import de.ivu.elect.business.person.entity.PersonendatenConstants;
import de.ivu.elect.business.stimmzettel.entity.EntityAufStimmzettelDaten;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;

public class KandidaturGewaehltNameColumn extends AbstractKandidaturGewaehltKandidaturColumn {
  private final EntityAufStimmzettelDaten entityAufStimmzettelDaten;

  public KandidaturGewaehltNameColumn(Messages messages, EntityAufStimmzettelDaten entityAufStimmzettelDaten) {
    super(messages);
    this.entityAufStimmzettelDaten = entityAufStimmzettelDaten;
  }

  @Override
  protected Object getValue(Kandidatur kandidatur) {
    return kandidatur.getStimmzettelPersonendaten(entityAufStimmzettelDaten).getName();
  }

  @Override
  public String getHeader() {
    return getMessage(PersonendatenConstants.MESSAGE_KEY_FAMILIENNAME_EINZAHL) + ", " + getMessage(AbstractPersonendaten.MESSAGE_KEY_VORNAME_EINZAHL);
  }

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