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

import static java.util.Objects.nonNull;

import de.ivu.elect.business.entschaedigung.entity.Entschaedigungsart;
import de.ivu.elect.jee.faces.Messages;

public class EntschaedigungsartKriteriumColumn extends AbstractEntschaedigungsartColumn<Entschaedigungsart> {

  private static final long serialVersionUID = 1L;

  private final String valueMsgKeyPrefix;

  private final AbstractEntschaedigungsartColumn<Entschaedigungsart> entschaedigungsartKriteriumColumn;

  public EntschaedigungsartKriteriumColumn(Messages messages, String valueMsgKeyPrefix, AbstractEntschaedigungsartColumn<Entschaedigungsart> entschaedigungsartKriteriumColumn) {
    super("EntschaedigungsartKriteriumColumn-" + entschaedigungsartKriteriumColumn.getName(), messages, "", entschaedigungsartKriteriumColumn.getType(),
        entschaedigungsartKriteriumColumn::getDisplayValue);

    this.valueMsgKeyPrefix = valueMsgKeyPrefix;

    this.entschaedigungsartKriteriumColumn = entschaedigungsartKriteriumColumn;
  }

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

  @Override
  public Object getValue(Entschaedigungsart entschaedigungsart) {
    Object value = super.getValue(entschaedigungsart);

    if (nonNull(value)) {
      value = getMessage(valueMsgKeyPrefix + value);
    }

    return value;
  }
}
