| /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
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