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

import de.ivu.elect.business.ergebnis.entity.Gewaehlt;
import de.ivu.elect.business.kandidatur.entity.KandidaturGewaehlt;
import de.ivu.elect.jee.faces.Messages;

public abstract class AbstractKandidaturGewaehltGewaehltColumn extends AbstractWasKandidaturGewaehltColumn {

  private static final long serialVersionUID = 1L;

  public AbstractKandidaturGewaehltGewaehltColumn(Messages messages) {
    super(messages);
  }

  @Override
  public Object getValue(KandidaturGewaehlt kandidaturGewaehlt) {
    Gewaehlt gewaehlt = getGewaehlt(kandidaturGewaehlt);

    if (gewaehlt == null) {
      return null;
    }

    return getValue(gewaehlt);
  }

  protected Gewaehlt getGewaehlt(KandidaturGewaehlt kandidaturGewaehlt) {
    if (kandidaturGewaehlt == null) {
      return null;
    }

    return kandidaturGewaehlt.getGewaehlt();
  }

  protected abstract Object getValue(Gewaehlt gewaehlt);
}
