package reviewcomments;

import domain.Employee;

import java.util.Collections;
import java.util.Comparator;
import java.util.Optional;
import java.util.function.Function;

public class OptionalExample {

  public static void main(String[] args) {
    System.out.println("displayFirstEmployeeFromList" + displayFirstEmployeeFromList().get().getFirstName());
    maxEmployeeId();
  }


  private static Function<Employee, Employee> employeeFullName = employee -> {
    employee.setFirstName(employee.getFirstName().get().concat(employee.getLastName().get()));
    return employee;
  };


  private static Optional<Employee> displayFirstEmployeeFromList() {
    return EmployeeUtil.fetchEmployees().orElseGet(Collections::emptyList).stream().findFirst();
  }


  private static void maxEmployeeId() {
    EmployeeUtil
        .fetchEmployees()
        .orElseGet(Collections::emptyList)
        .stream()
        .min(Comparator.comparing(o -> o.getEmplId().get()))
        .ifPresent(employee -> System.out.println(employee.getEmplId()));
  }

}