1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.batch.sample.domain.trade;
18
19 import static org.springframework.batch.sample.domain.trade.CustomerOperation.*;
20
21 import org.springframework.batch.item.ItemProcessor;
22
23
24
25
26
27 public class CustomerUpdateProcessor implements ItemProcessor<CustomerUpdate, CustomerUpdate>{
28
29 private CustomerDao customerDao;
30 private InvalidCustomerLogger invalidCustomerLogger;
31
32 public CustomerUpdate process(CustomerUpdate item) throws Exception {
33
34 if(item.getOperation() == DELETE){
35
36 invalidCustomerLogger.log(item);
37 return null;
38 }
39
40 CustomerCredit customerCredit = customerDao.getCustomerByName(item.getCustomerName());
41
42 if(item.getOperation() == ADD && customerCredit == null){
43 return item;
44 }
45 else if(item.getOperation() == ADD && customerCredit != null){
46
47 invalidCustomerLogger.log(item);
48 return null;
49 }
50
51 if(item.getOperation() == UPDATE && customerCredit != null){
52 return item;
53 }
54 else if(item.getOperation() == UPDATE && customerCredit == null){
55
56 invalidCustomerLogger.log(item);
57 return null;
58 }
59
60
61 invalidCustomerLogger.log(item);
62 return null;
63 }
64
65 public void setCustomerDao(CustomerDao customerDao) {
66 this.customerDao = customerDao;
67 }
68
69 public void setInvalidCustomerLogger(
70 InvalidCustomerLogger invalidCustomerLogger) {
71 this.invalidCustomerLogger = invalidCustomerLogger;
72 }
73
74 }