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