有个类一直无法理解,情况是这样的,该类有个内部接口,确定没有任何实现方法,怀疑代码不全需要自己补充,请高手支招确定下,第一次发帖,望大家捧捧场,谢谢!
PresenceEventDispatcher继承的一个引用自己内部接口的抽象类,有“<”刚被csdn隐藏了
public class PresenceEventDispatcher extends EventDispatcher<PresenceEventDispatcher.PresenceEventListener> {
private final PresenceWorker presenceWorker = new PresenceWorker();
public void availableSession(ClientSession session) {
if (!listeners.isEmpty()) {
for (PresenceEventListener listener : listeners) {
listener.availableSession(session);
}
}
presenceChanged(session);
}
public void unavailableSession(ClientSession session) {
if (!listeners.isEmpty()) {
for (PresenceEventListener listener : listeners) {
listener.unavailableSession(session);
}
}
presenceChanged(session);
}
public void presenceChanged(ClientSession session) {
if (!listeners.isEmpty()) {
for (PresenceEventListener listener : listeners) {
listener.presenceChanged(session, session.getPresence());
}
}
presenceWorker.push(session.getPresence());
}
public interface PresenceEventListener extends EventListener {
public void availableSession(ClientSession session);
public void unavailableSession(ClientSession session);
public void presenceChanged(ClientSession session, Presence presence);
}
}
public abstract class EventDispatcher {
protected List<T> listeners = new CopyOnWriteArrayList<T>();
/**
* Registers a listener to receive events.
*
* @param listener the listener.
*/
public void addListener(T listener) {
if (listener == null) {
throw new NullPointerException();
}
listeners.add(listener);
}
/**
* Unregisters a listener to receive events.
*
* @param listener the listener.
*/
public void removeListener(T listener) {
listeners.remove(listener);
}
}