/home/oracle/labs/06CollectionOperations/examples/EmployeeSearch06/src/com/example/lambda/A09SortBonus.java
 1 package com.example.lambda;
 2 
 3 import java.util.List;
 4 import java.util.OptionalDouble;
 5 
 6 /**
 7  *
 8  * @author oracle
 9  */
10 public class A09SortBonus {
11   public static void main(String[] args) {
12     List<Employee> eList = Employee.createShortList();
13         
14     System.out.println("\n== CO Bonus Details ==");
15         
16     eList.stream()
17       .filter(e -> e.getRole().equals(Role.EXECUTIVE))
18       .filter(e -> e.getState().equals("CO"))
19       .mapToDouble(e -> e.getSalary() * Bonus.byRole(e.getRole()))
20       .sorted()
21       .forEach(d -> System.out.printf("Bonus paid: $%,6.2f %n", d));        
22 
23     System.out.println("\n== CO Bonus Details ==");
24         
25     eList.stream()
26       .filter(e -> e.getRole().equals(Role.EXECUTIVE))
27       .filter(e -> e.getState().equals("CO"))
28       .sorted()
29       .forEach(Employee::printSummary);        
30     }
31 }
32