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

import java.util.function.Function;

import de.ivu.elect.business.niederschrift.boundary.AbstractNiederschriftStatusAenderungDAO;
import de.ivu.elect.business.niederschrift.entity.NiederschriftStatusAenderung;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;

public abstract class AbstractNiederschriftStatusAenderungNiederschriftNeuesteNiederschriftStatusAenderungColumn<E extends NiederschriftStatusAenderung>
    extends
      AbstractNiederschriftStatusAenderungColumn<E> {

  private static final long serialVersionUID = 1L;

  protected AbstractNiederschriftStatusAenderungNiederschriftNeuesteNiederschriftStatusAenderungColumn(String attributeId, Messages messages,
      AbstractNiederschriftStatusAenderungDAO niederschriftStatusAenderungDAO, String headerKey, ColumnType type, Function<NiederschriftStatusAenderung, Object> getter) {
    super("NiederschriftStatusAenderung-Niederschrift-NeuesteNiederschriftStatusAenderung-" + attributeId, messages, headerKey, type, niederschriftStatusAenderung -> {
      NiederschriftStatusAenderung niederschriftStatusAenderungNeueste = niederschriftStatusAenderung.getNiederschrift().findNeuesteNiederschriftStatusAenderung(niederschriftStatusAenderungDAO);

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

      return getter.apply(niederschriftStatusAenderungNeueste);
    });
  }
}
