1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.springframework.batch.core.listener;
17
18 import java.util.Iterator;
19 import java.util.List;
20
21 import org.springframework.batch.core.SkipListener;
22 import org.springframework.core.Ordered;
23
24
25
26
27
28 public class CompositeSkipListener<T,S> implements SkipListener<T,S> {
29
30 private OrderedComposite<SkipListener<? super T,? super S>> listeners = new OrderedComposite<SkipListener<? super T,? super S>>();
31
32
33
34
35
36
37 public void setListeners(List<? extends SkipListener<? super T,? super S>> listeners) {
38 this.listeners.setItems(listeners);
39 }
40
41
42
43
44
45
46 public void register(SkipListener<? super T,? super S> listener) {
47 listeners.add(listener);
48 }
49
50
51
52
53
54
55 @Override
56 public void onSkipInRead(Throwable t) {
57 for (Iterator<SkipListener<? super T,? super S>> iterator = listeners.iterator(); iterator.hasNext();) {
58 SkipListener<? super T,? super S> listener = iterator.next();
59 listener.onSkipInRead(t);
60 }
61 }
62
63
64
65
66
67
68
69 @Override
70 public void onSkipInWrite(S item, Throwable t) {
71 for (Iterator<SkipListener<? super T,? super S>> iterator = listeners.iterator(); iterator.hasNext();) {
72 SkipListener<? super T,? super S> listener = iterator.next();
73 listener.onSkipInWrite(item, t);
74 }
75 }
76
77
78
79
80
81
82
83 @Override
84 public void onSkipInProcess(T item, Throwable t) {
85 for (Iterator<SkipListener<? super T,? super S>> iterator = listeners.iterator(); iterator.hasNext();) {
86 SkipListener<? super T,? super S> listener = iterator.next();
87 listener.onSkipInProcess(item, t);
88 }
89 }
90
91 }