ListenersContainer unnecessary initialization related cleanup.

This commit is contained in:
MobiusDevelopment 2021-09-16 23:00:46 +00:00
parent a6cd1d2a7e
commit 80707736af
21 changed files with 564 additions and 383 deletions

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -30,7 +30,7 @@ import org.l2jmobius.gameserver.model.events.listeners.AbstractEventListener;
*/ */
public class ListenersContainer public class ListenersContainer
{ {
private final Map<EventType, Queue<AbstractEventListener>> _listeners = new ConcurrentHashMap<>(); private Map<EventType, Queue<AbstractEventListener>> _listeners = null;
/** /**
* Registers listener for a callback when specified event is executed. * Registers listener for a callback when specified event is executed.
@ -58,6 +58,10 @@ public class ListenersContainer
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
else if (_listeners == null)
{
throw new NullPointerException("Listeners container is not initialized!");
}
else if (!_listeners.containsKey(listener.getType())) else if (!_listeners.containsKey(listener.getType()))
{ {
throw new IllegalAccessError("Listeners container doesn't had " + listener.getType() + " event type added!"); throw new IllegalAccessError("Listeners container doesn't had " + listener.getType() + " event type added!");
@ -67,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -89,6 +89,11 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (Queue<AbstractEventListener> queue : getListeners().values()) for (Queue<AbstractEventListener> queue : getListeners().values())
{ {
for (AbstractEventListener listener : queue) for (AbstractEventListener listener : queue)
@ -103,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**
@ -112,6 +126,16 @@ public class ListenersContainer
*/ */
private Map<EventType, Queue<AbstractEventListener>> getListeners() private Map<EventType, Queue<AbstractEventListener>> getListeners()
{ {
if (_listeners == null)
{
synchronized (this)
{
if (_listeners == null)
{
_listeners = new ConcurrentHashMap<>();
}
}
}
return _listeners; return _listeners;
} }
} }

View File

@ -30,7 +30,7 @@ import org.l2jmobius.gameserver.model.events.listeners.AbstractEventListener;
*/ */
public class ListenersContainer public class ListenersContainer
{ {
private final Map<EventType, Queue<AbstractEventListener>> _listeners = new ConcurrentHashMap<>(); private Map<EventType, Queue<AbstractEventListener>> _listeners = null;
/** /**
* Registers listener for a callback when specified event is executed. * Registers listener for a callback when specified event is executed.
@ -58,6 +58,10 @@ public class ListenersContainer
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
else if (_listeners == null)
{
throw new NullPointerException("Listeners container is not initialized!");
}
else if (!_listeners.containsKey(listener.getType())) else if (!_listeners.containsKey(listener.getType()))
{ {
throw new IllegalAccessError("Listeners container doesn't had " + listener.getType() + " event type added!"); throw new IllegalAccessError("Listeners container doesn't had " + listener.getType() + " event type added!");
@ -67,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -89,6 +89,11 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (Queue<AbstractEventListener> queue : getListeners().values()) for (Queue<AbstractEventListener> queue : getListeners().values())
{ {
for (AbstractEventListener listener : queue) for (AbstractEventListener listener : queue)
@ -103,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**
@ -112,6 +126,16 @@ public class ListenersContainer
*/ */
private Map<EventType, Queue<AbstractEventListener>> getListeners() private Map<EventType, Queue<AbstractEventListener>> getListeners()
{ {
if (_listeners == null)
{
synchronized (this)
{
if (_listeners == null)
{
_listeners = new ConcurrentHashMap<>();
}
}
}
return _listeners; return _listeners;
} }
} }

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**

View File

@ -39,7 +39,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener addListener(AbstractEventListener listener) public AbstractEventListener addListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -54,7 +54,7 @@ public class ListenersContainer
*/ */
public AbstractEventListener removeListener(AbstractEventListener listener) public AbstractEventListener removeListener(AbstractEventListener listener)
{ {
if ((listener == null)) if (listener == null)
{ {
throw new NullPointerException("Listener cannot be null!"); throw new NullPointerException("Listener cannot be null!");
} }
@ -71,17 +71,13 @@ public class ListenersContainer
return listener; return listener;
} }
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
}
public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter) public void removeListenerIf(EventType type, Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners == null)
{
return;
}
for (AbstractEventListener listener : getListeners(type)) for (AbstractEventListener listener : getListeners(type))
{ {
if (filter.test(listener)) if (filter.test(listener))
@ -93,16 +89,18 @@ public class ListenersContainer
public void removeListenerIf(Predicate<? super AbstractEventListener> filter) public void removeListenerIf(Predicate<? super AbstractEventListener> filter)
{ {
if (_listeners != null) if (_listeners == null)
{ {
for (Queue<AbstractEventListener> queue : getListeners().values()) return;
}
for (Queue<AbstractEventListener> queue : getListeners().values())
{
for (AbstractEventListener listener : queue)
{ {
for (AbstractEventListener listener : queue) if (filter.test(listener))
{ {
if (filter.test(listener)) listener.unregisterMe();
{
listener.unregisterMe();
}
} }
} }
} }
@ -110,7 +108,16 @@ public class ListenersContainer
public boolean hasListener(EventType type) public boolean hasListener(EventType type)
{ {
return !getListeners(type).isEmpty(); return (_listeners != null) && !getListeners(type).isEmpty();
}
/**
* @param type
* @return {@code List} of {@link AbstractEventListener} by the specified type
*/
public Queue<AbstractEventListener> getListeners(EventType type)
{
return (_listeners != null) && _listeners.containsKey(type) ? _listeners.get(type) : EmptyQueue.emptyQueue();
} }
/** /**