public synchronized void addLifecycleListener(LifecycleListener listener,
Set patterns) {
for (Iterator patternIterator = patterns.iterator(); patternIterator.hasNext();) {
AbstractNameQuery pattern = (AbstractNameQuery) patternIterator.next();
for (Iterator iterator = boundListeners.entrySet().iterator(); iterator.hasNext();) {
Map.Entry entry = (Map.Entry) iterator.next();
AbstractName source = (AbstractName) entry.getKey();
SourceInfo sourceInfo = (SourceInfo) entry.getValue();
if (pattern.matches(source, sourceInfo.getInterfaceTypes())) {
Set listeners = sourceInfo.getListeners();
listeners.add(listener);
}
}
}
listenerPatterns.put(listener, patterns);
}
|