1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package gnu.hylafax.job;
25
26 import java.util.ArrayList;
27 import java.util.Iterator;
28 import java.util.List;
29
30 /***
31 * This interface defines what a class should implement in order to notify
32 * others of job related events.
33 *
34 * @author $Author: sjardine $
35 * @version $Id: BasicSendNotifier.java,v 1.3 2006/02/20 04:52:10 sjardine Exp $
36 * @see gnu.hylafax.job.SendListener
37 * @see gnu.hylafax.job.SendEvent
38 */
39 public class BasicSendNotifier implements SendNotifier {
40
41 private List listeners = null;
42
43 public BasicSendNotifier() {
44 listeners = new ArrayList();
45 }
46
47 /***
48 * This method is called when Job state changes.
49 */
50 public void notifySendListeners(SendEvent details) {
51 if (details == null) {
52 return;
53 }
54 synchronized (listeners) {
55 Iterator i = listeners.iterator();
56 while (i.hasNext()) {
57 SendListener l = (SendListener) i.next();
58 l.onSendEvent(details);
59 }
60 }
61 }
62
63 /***
64 * This method is called to register a Job Listener.
65 */
66 public void addSendListener(SendListener l) {
67 if (l == null) {
68 return;
69 }
70 synchronized (listeners) {
71 listeners.add(l);
72 }
73 }
74
75 /***
76 * This method is used to deregister a Job Listener.
77 */
78 public void removeSendListener(SendListener l) {
79 if (l == null) {
80 return;
81 }
82 synchronized (listeners) {
83 listeners.remove(l);
84 }
85 }
86 }