@Override
    public boolean matches(Object otherEvent)
    {
        if (otherEvent == this) {
            return true;
        }

        boolean isMatching = false;

        if (this.getClass().isAssignableFrom(otherEvent.getClass())) {
            isMatching = getEventFilter().matches(((AbstractFilterableEvent) otherEvent).getEventFilter());
        }

        return isMatching;
    }
@ Override public boolean matches ( Object otherEvent ) { if ( otherEvent == this ) { return true ; } boolean isMatching = false ; if ( this . getClass ( ) . isAssignableFrom ( otherEvent . getClass ( ) ) ) { isMatching = getEventFilter ( ) . matches ( ( ( AbstractFilterableEvent ) otherEvent ) . getEventFilter ( ) ) ; } return isMatching ; }
{@inheritDoc}
<p>
This type of events match only events of the same type, and only if the internal {@link #eventFilter}s also
{@link EventFilter#matches(EventFilter)} match.
</p>

@see Event#matches(Object)
@see EventFilter#matches(EventFilter)