@ Override public void match ( Object userContext , Object eventType , Object instance ) { if ( instance == null ) { throw new IllegalArgumentException ( "instance cannot be null" ) ; } read . lock ( ) ; try { MatcherEvalContext < TypeMetadata , AttributeMetadata , AttributeId > ctx = startMultiTypeContext ( false , userContext , eventType , instance ) ; if ( ctx != null ) { // try to match ctx . process ( ctx . getRootNode ( ) ) ; // notify ctx . notifySubscribers ( ) ; } } finally { read . unlock ( ) ; } }
Executes the registered filters and notifies each one of them whether it was satisfied or not by the given instance .