org.xwiki.observation.event
Class AbstractFilterableEvent

java.lang.Object
  extended by org.xwiki.observation.event.AbstractFilterableEvent
All Implemented Interfaces:
java.io.Serializable, Event, FilterableEvent
Direct Known Subclasses:
AbstractCancelableEvent

public abstract class AbstractFilterableEvent
extends java.lang.Object
implements FilterableEvent, java.io.Serializable

A generic Event implementation to extend for all Events that want to support EventFilters.

Since:
2.4M2
Version:
$Id$
See Also:
Serialized Form

Constructor Summary
AbstractFilterableEvent()
          Constructor initializing the event filter with an AlwaysMatchingEventFilter, meaning that this event will match any other event of the same type.
AbstractFilterableEvent(EventFilter eventFilter)
          Constructor using a custom EventFilter.
AbstractFilterableEvent(java.lang.String name)
          Constructor initializing the event filter with a FixedNameEventFilter, meaning that this event will match only events of the same type affecting the same passed name.
 
Method Summary
 EventFilter getEventFilter()
          Retrieves the filter used to match this event against other events, used in Event.matches(Object).
 boolean matches(java.lang.Object otherEvent)
          Compares two events to see if they match, meaning that a listener that registered to receive notifications like referenceEvent will be notified of any occuring event for which referenceEvent.matches(occuringEvent) will return true.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractFilterableEvent

public AbstractFilterableEvent()
Constructor initializing the event filter with an AlwaysMatchingEventFilter, meaning that this event will match any other event of the same type.


AbstractFilterableEvent

public AbstractFilterableEvent(java.lang.String name)
Constructor initializing the event filter with a FixedNameEventFilter, meaning that this event will match only events of the same type affecting the same passed name.

Parameters:
name - a generic name that uniquely identifies an event type

AbstractFilterableEvent

public AbstractFilterableEvent(EventFilter eventFilter)
Constructor using a custom EventFilter.

Parameters:
eventFilter - the filter to use for matching events
Method Detail

getEventFilter

public EventFilter getEventFilter()
Retrieves the filter used to match this event against other events, used in Event.matches(Object).

Specified by:
getEventFilter in interface FilterableEvent
Returns:
the event's filter
See Also:
FilterableEvent.getEventFilter()

matches

public boolean matches(java.lang.Object otherEvent)
Compares two events to see if they match, meaning that a listener that registered to receive notifications like referenceEvent will be notified of any occuring event for which referenceEvent.matches(occuringEvent) will return true. The matching algorithm depends on the event implementation. For example for Document events two events match if they implement the same event class and if their EventFilter match. Note that the implementation is left open in order to cater for all the possible ways this Observation component can be used.

This type of events match only events of the same type, and only if the internal eventFilters also match.

Specified by:
matches in interface Event
Parameters:
otherEvent - the occuring event matched against the current object
Returns:
true if the passed event matches this event, false otherwise.
See Also:
Event.matches(Object), EventFilter.matches(EventFilter)


Copyright © 2004-2011 XWiki. All Rights Reserved.