1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.net.util;
19
20 import java.io.ObjectInputStream;
21 import java.io.ObjectOutputStream;
22 import java.io.Serializable;
23 import java.util.EventListener;
24 import java.util.Iterator;
25 import java.util.concurrent.CopyOnWriteArrayList;
26
27
28
29 public class ListenerList implements Serializable, Iterable<EventListener> {
30
31 private static final long serialVersionUID = -1934227607974228213L;
32
33 private final CopyOnWriteArrayList<EventListener> listeners;
34
35 public ListenerList() {
36 listeners = new CopyOnWriteArrayList<>();
37 }
38
39 public void addListener(final EventListener listener) {
40 listeners.add(listener);
41 }
42
43 public int getListenerCount() {
44 return listeners.size();
45 }
46
47
48
49
50
51
52
53 @Override
54 public Iterator<EventListener> iterator() {
55 return listeners.iterator();
56 }
57
58 private void readObject(final ObjectInputStream in) {
59 throw new UnsupportedOperationException("Serialization is not supported");
60 }
61
62
63
64
65
66 public void removeListener(final EventListener listener) {
67 listeners.remove(listener);
68 }
69
70 private void writeObject(final ObjectOutputStream out) {
71 throw new UnsupportedOperationException("Serialization is not supported");
72 }
73
74 }