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

import de.ivu.elect.business.person.entity.Personendaten;
import de.ivu.elect.business.personenpruefung.entity.PersonenKonflikt;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;
import de.ivu.elect.presentation.table.AbstractColumnEntry;

public class PersonenKonfliktPersonendatenColumn extends AbstractPersonenKonfliktColumn<PersonenKonflikt> {

  private static final long serialVersionUID = 1L;

  private final AbstractColumnEntry<Personendaten> column;

  public PersonenKonfliktPersonendatenColumn(String id, AbstractColumnEntry<Personendaten> column, Messages messages) {
    super(id, messages, null, null, null);

    this.column = column;
  }

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

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

  @Override
  public Object getValue(PersonenKonflikt personenKonflikt) {
    if (personenKonflikt != null) {
      return column.getDisplayValue(personenKonflikt.getPersonendaten());
    }

    return "";
  }

  @Override
  public boolean isIconPresent() {
    return column.isIconPresent();
  }

  @Override
  public boolean isIconRendered(PersonenKonflikt personenKonflikt) {
    if (personenKonflikt != null) {
      return column.isIconRendered(personenKonflikt.getPersonendaten());
    }

    return super.isIconRendered(personenKonflikt);
  }

  @Override
  public String getIcon(PersonenKonflikt personenKonflikt) {
    if (personenKonflikt != null) {
      return column.getIcon(personenKonflikt.getPersonendaten());
    }

    return super.getIcon(personenKonflikt);
  }

  @Override
  public String getTooltip(PersonenKonflikt personenKonflikt) {
    if (personenKonflikt != null) {
      return column.getTooltip(personenKonflikt.getPersonendaten());
    }

    return super.getTooltip(personenKonflikt);
  }
}
