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

import java.util.function.Function;

import de.ivu.elect.business.niederschrift.entity.Niederschrift;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;

public abstract class AbstractNiederschriftWahlColumn<E extends Niederschrift> extends AbstractNiederschriftColumn<E> {

  private static final long serialVersionUID = 1L;

  public AbstractNiederschriftWahlColumn(String attributeId, Messages messages, String headerKey, ColumnType type, Function<Wahl, Object> getter) {
    super("Niederschrift-Wahl-" + attributeId, messages, headerKey, type, niederschrift -> {
      Wahl wahl = niederschrift.getWahl();

      if (wahl != null) {
        return getter.apply(wahl);
      }

      return null;
    });
  }
}
