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

import de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPerson;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.List;

import static java.util.Objects.nonNull;

public class WahlvorschlagsPersonKontaktdatenColumn<E extends WahlvorschlagsPerson> extends AbstractWahlvorschlagsPersonColumn<E> {
  protected WahlvorschlagsPersonKontaktdatenColumn(Messages messages) {
    super("WahlvorschlagsPerson-Kontaktdaten", messages, "wahlvorschlagsperson.search.column.kontakdaten.header", ColumnType.COLLECTION, null);
  }

  @Override
  public Object getValue(E wahlvorschlagsperson) {
    List<String> kontaktdaten = new ArrayList<>();
    if (nonNull(wahlvorschlagsperson)) {
      addIfNotBlank(wahlvorschlagsperson.getTelefonnummerFestnetz(), kontaktdaten);
      addIfNotBlank(wahlvorschlagsperson.getTelefonnummerMobil(), kontaktdaten);
      addIfNotBlank(wahlvorschlagsperson.getTelefonnummerArbeit(), kontaktdaten);
      addIfNotBlank(wahlvorschlagsperson.getEmailAdresse(), kontaktdaten);
      addIfNotBlank(wahlvorschlagsperson.getEmailAdresseArbeit(), kontaktdaten);
    }
    return kontaktdaten;
  }

  private void addIfNotBlank(String value, List<String> kontaktdaten) {
    if (StringUtils.isNotBlank(value)) {
      kontaktdaten.add(value);
    }
  }
}
