1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.log4j.chainsaw;
21
22 import javax.swing.event.EventListenerList;
23 import java.util.Collection;
24 import java.util.Collections;
25 import java.util.HashSet;
26 import java.util.Set;
27
28
29
30
31
32
33
34 public class LoggerNameModelSupport implements LoggerNameModel {
35
36 private Set<String> loggerNameSet = new HashSet<>();
37 private EventListenerList listenerList = new EventListenerList();
38
39
40
41
42
43 public Collection getLoggerNames() {
44 return Collections.unmodifiableSet(loggerNameSet);
45 }
46
47
48
49
50 public boolean addLoggerName(String loggerName) {
51 boolean isNew = loggerNameSet.add(loggerName);
52
53 if (isNew) {
54 notifyListeners(loggerName);
55 }
56
57 return isNew;
58 }
59
60 public void reset() {
61 loggerNameSet.clear();
62 LoggerNameListener[] eventListeners = listenerList.getListeners(LoggerNameListener.class);
63
64 for (LoggerNameListener listener : eventListeners) {
65 listener.reset();
66 }
67 }
68
69
70
71
72
73
74
75 private void notifyListeners(String loggerName) {
76 LoggerNameListener[] eventListeners = listenerList.getListeners(LoggerNameListener.class);
77
78 for (LoggerNameListener listener : eventListeners) {
79 listener.loggerNameAdded(loggerName);
80 }
81 }
82
83
84
85
86 public void addLoggerNameListener(LoggerNameListener l) {
87 listenerList.add(LoggerNameListener.class, l);
88 }
89
90
91
92
93 public void removeLoggerNameListener(LoggerNameListener l) {
94 listenerList.remove(LoggerNameListener.class, l);
95 }
96 }