ehcache

net.sf.ehcache.event
Class RegisteredEventListeners

java.lang.Object
  extended by net.sf.ehcache.event.RegisteredEventListeners

public class RegisteredEventListeners
extends Object

Registered listeners for registering and unregistering CacheEventListeners and multicasting notifications to registrants.

There is one of these per Cache.

This class also has counters to accumulate the numbers of each type of event for statistics purposes.

Version:
$Id: RegisteredEventListeners.java 4483 2011-08-09 06:26:17Z teck $
Author:
Greg Luck, Geert Bevin

Nested Class Summary
static interface RegisteredEventListeners.ElementCreationCallback
          Callback interface for creating elements to pass to registered listeners.
 
Constructor Summary
RegisteredEventListeners(Ehcache cache)
          Constructs a new notification service
 
Method Summary
 void clearCounters()
          Clears all event counters
 void dispose()
          Tell listeners to dispose themselves.
 Set<CacheEventListener> getCacheEventListeners()
          Gets a copy of the set of the listeners registered to this class
 long getElementsEvictedCounter()
          Gets the number of events, irrespective of whether there are any registered listeners.
 long getElementsExpiredCounter()
          Gets the number of events, irrespective of whether there are any registered listeners.
 long getElementsPutCounter()
          Gets the number of events, irrespective of whether there are any registered listeners.
 long getElementsRemoveAllCounter()
          Gets the number of events, irrespective of whether there are any registered listeners.
 long getElementsRemovedCounter()
          Gets the number of events, irrespective of whether there are any registered listeners.
 long getElementsUpdatedCounter()
          Gets the number of events, irrespective of whether there are any registered listeners.
 boolean hasCacheEventListeners()
          Returns whether or not at least one cache event listeners has been registered.
 void notifyElementEvicted(Element element, boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that an element has been evicted from the cache
 void notifyElementEvicted(RegisteredEventListeners.ElementCreationCallback callback, boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that an element has been evicted from the cache
 void notifyElementExpiry(Element element, boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that an element has expired
 void notifyElementExpiry(RegisteredEventListeners.ElementCreationCallback callback, boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that an element has expired
 void notifyElementPut(Element element, boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that an element was put into the cache
 void notifyElementPut(RegisteredEventListeners.ElementCreationCallback callback, boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that an element was put into the cache
 void notifyElementRemoved(Element element, boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that an element was removed
 void notifyElementRemoved(RegisteredEventListeners.ElementCreationCallback callback, boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that an element was removed
 void notifyElementUpdated(Element element, boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that an element in the cache was updated
 void notifyElementUpdated(RegisteredEventListeners.ElementCreationCallback callback, boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that an element in the cache was updated
 void notifyRemoveAll(boolean remoteEvent)
          Notifies all registered listeners, in no guaranteed order, that removeAll has been called and all elements cleared
 boolean registerListener(CacheEventListener cacheEventListener)
          Adds a listener to the notification service.
 boolean registerListener(CacheEventListener cacheEventListener, NotificationScope scope)
          Adds a listener to the notification service.
 String toString()
          Returns a string representation of the object.
 boolean unregisterListener(CacheEventListener cacheEventListener)
          Removes a listener from the notification service.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RegisteredEventListeners

public RegisteredEventListeners(Ehcache cache)
Constructs a new notification service

Parameters:
cache -
Method Detail

notifyElementRemoved

public final void notifyElementRemoved(Element element,
                                       boolean remoteEvent)
                                throws CacheException
Notifies all registered listeners, in no guaranteed order, that an element was removed

Parameters:
element -
remoteEvent - whether the event came from a remote cache peer
Throws:
CacheException
See Also:
CacheEventListener.notifyElementRemoved(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)

notifyElementRemoved

public final void notifyElementRemoved(RegisteredEventListeners.ElementCreationCallback callback,
                                       boolean remoteEvent)
                                throws CacheException
Notifies all registered listeners, in no guaranteed order, that an element was removed

Parameters:
callback -
remoteEvent - whether the event came from a remote cache peer
Throws:
CacheException
See Also:
CacheEventListener.notifyElementRemoved(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)

notifyElementPut

public final void notifyElementPut(Element element,
                                   boolean remoteEvent)
                            throws CacheException
Notifies all registered listeners, in no guaranteed order, that an element was put into the cache

Parameters:
element -
remoteEvent - whether the event came from a remote cache peer
Throws:
CacheException
See Also:
CacheEventListener.notifyElementPut(net.sf.ehcache.Ehcache,net.sf.ehcache.Element)

notifyElementPut

public final void notifyElementPut(RegisteredEventListeners.ElementCreationCallback callback,
                                   boolean remoteEvent)
                            throws CacheException
Notifies all registered listeners, in no guaranteed order, that an element was put into the cache

Parameters:
callback -
remoteEvent - whether the event came from a remote cache peer
Throws:
CacheException
See Also:
CacheEventListener.notifyElementPut(net.sf.ehcache.Ehcache,net.sf.ehcache.Element)

notifyElementUpdated

public final void notifyElementUpdated(Element element,
                                       boolean remoteEvent)
Notifies all registered listeners, in no guaranteed order, that an element in the cache was updated

Parameters:
element -
remoteEvent - whether the event came from a remote cache peer
See Also:
CacheEventListener.notifyElementPut(net.sf.ehcache.Ehcache,net.sf.ehcache.Element)

notifyElementUpdated

public final void notifyElementUpdated(RegisteredEventListeners.ElementCreationCallback callback,
                                       boolean remoteEvent)
Notifies all registered listeners, in no guaranteed order, that an element in the cache was updated

Parameters:
callback -
remoteEvent - whether the event came from a remote cache peer
See Also:
CacheEventListener.notifyElementPut(net.sf.ehcache.Ehcache,net.sf.ehcache.Element)

notifyElementExpiry

public final void notifyElementExpiry(Element element,
                                      boolean remoteEvent)
Notifies all registered listeners, in no guaranteed order, that an element has expired

Parameters:
element - the Element to perform the notification on
remoteEvent - whether the event came from a remote cache peer
See Also:
CacheEventListener.notifyElementExpired(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)

notifyElementExpiry

public final void notifyElementExpiry(RegisteredEventListeners.ElementCreationCallback callback,
                                      boolean remoteEvent)
Notifies all registered listeners, in no guaranteed order, that an element has expired

Parameters:
callback -
remoteEvent - whether the event came from a remote cache peer
See Also:
CacheEventListener.notifyElementExpired(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)

hasCacheEventListeners

public final boolean hasCacheEventListeners()
Returns whether or not at least one cache event listeners has been registered.

Returns:
true if a one or more listeners have registered, otherwise false

notifyElementEvicted

public final void notifyElementEvicted(Element element,
                                       boolean remoteEvent)
Notifies all registered listeners, in no guaranteed order, that an element has been evicted from the cache

Parameters:
element - the Element to perform the notification on
remoteEvent - whether the event came from a remote cache peer
See Also:
CacheEventListener.notifyElementEvicted(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)

notifyElementEvicted

public final void notifyElementEvicted(RegisteredEventListeners.ElementCreationCallback callback,
                                       boolean remoteEvent)
Notifies all registered listeners, in no guaranteed order, that an element has been evicted from the cache

Parameters:
callback -
remoteEvent - whether the event came from a remote cache peer
See Also:
CacheEventListener.notifyElementEvicted(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)

notifyRemoveAll

public final void notifyRemoveAll(boolean remoteEvent)
Notifies all registered listeners, in no guaranteed order, that removeAll has been called and all elements cleared

Parameters:
remoteEvent - whether the event came from a remote cache peer
See Also:
CacheEventListener.notifyElementEvicted(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)

registerListener

public final boolean registerListener(CacheEventListener cacheEventListener)
Adds a listener to the notification service. No guarantee is made that listeners will be notified in the order they were added.

Parameters:
cacheEventListener -
Returns:
true if the listener is being added and was not already added

registerListener

public final boolean registerListener(CacheEventListener cacheEventListener,
                                      NotificationScope scope)
Adds a listener to the notification service. No guarantee is made that listeners will be notified in the order they were added.

If a cache is configured in a cluster, listeners in each node will get triggered by an event depending on the value of the

listenFor
parameter.

Parameters:
cacheEventListener - The listener to add
scope - The notification scope
Returns:
true if the listener is being added and was not already added
Since:
2.0

unregisterListener

public final boolean unregisterListener(CacheEventListener cacheEventListener)
Removes a listener from the notification service.

Parameters:
cacheEventListener -
Returns:
true if the listener was present

getCacheEventListeners

public final Set<CacheEventListener> getCacheEventListeners()
Gets a copy of the set of the listeners registered to this class

Returns:
a set of type CacheEventListener

dispose

public final void dispose()
Tell listeners to dispose themselves. Because this method is only ever called from a synchronized cache method, it does not itself need to be synchronized.


toString

public final String toString()
Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read.

Overrides:
toString in class Object
Returns:
a string representation of the object.

clearCounters

public void clearCounters()
Clears all event counters


getElementsRemovedCounter

public long getElementsRemovedCounter()
Gets the number of events, irrespective of whether there are any registered listeners.

Returns:
the number of events since cache creation or last clearing of counters

getElementsPutCounter

public long getElementsPutCounter()
Gets the number of events, irrespective of whether there are any registered listeners.

Returns:
the number of events since cache creation or last clearing of counters

getElementsUpdatedCounter

public long getElementsUpdatedCounter()
Gets the number of events, irrespective of whether there are any registered listeners.

Returns:
the number of events since cache creation or last clearing of counters

getElementsExpiredCounter

public long getElementsExpiredCounter()
Gets the number of events, irrespective of whether there are any registered listeners.

Returns:
the number of events since cache creation or last clearing of counters

getElementsEvictedCounter

public long getElementsEvictedCounter()
Gets the number of events, irrespective of whether there are any registered listeners.

Returns:
the number of events since cache creation or last clearing of counters

getElementsRemoveAllCounter

public long getElementsRemoveAllCounter()
Gets the number of events, irrespective of whether there are any registered listeners.

Returns:
the number of events since cache creation or last clearing of counters

ehcache

true