
package de.ivu.elect.was.sitzberechnung.control;

import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.business.staat.entity.AbstractStaat;
import de.ivu.elect.business.staat.entity.Staat;

public class ElectStaatMapper {

  public ElectStaatMapper() {
    super();
  }

  public boolean isInlaender(Kandidatur kandidatur) {
    return kandidatur != null && kandidatur.getFirstStaatsangehoerigkeit().map(this::isInland).orElse(true);
  }

  protected boolean isInland(Staat staat) {
    return staat != null && AbstractStaat.matchesInland(staat);
  }

  public boolean isEuBuerger(Kandidatur kandidatur) {
    return kandidatur != null && kandidatur.getFirstStaatsangehoerigkeit().map(this::isEuLand).orElse(false);
  }

  protected boolean isEuLand(Staat staat) {
    return staat != null && Boolean.TRUE.equals(staat.getEuStaat());
  }
}
