code: public boolean filterMatches(AbstractItem item) throws MessageStoreException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "filterMatches", item);
  
      boolean result = true;
      
      // If messages are classified by XD, then check the classification up front.
      // If the index is 0, then there is no classification
      if(classIndex>0)
      {
        // If we're classifying then the classification property must match this
        // filter's classification
        result = false;
        
        //Do not throw exception if Message not available in the store
        boolean throwExceptionIfMessageNotAvailable = false;
        
        // Need to get the classification out of the message
        String keyClassification = ((SIMPMessage)item).getMessageControlClassification(throwExceptionIfMessageNotAvailable);              
  
        if(keyClassification != null && keyClassification.equalsIgnoreCase(classificationName))
          result = true;
        else
        {
          if(TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
            SibTr.debug(tc, "filter class: " + classificationName + ", message class: " + keyClassification);
        }
      }
      
      // If we still have a potential match, then drive any selector
      // processing through the parent class.
      if(result)
        result = parentFilter.filterMatches(item);
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "filterMatches", Boolean.valueOf(result));
      
      return result;
    }
docs: Called by MS when scanning an ItemStream for matching items
  @throws MessageStoreException