docs: public boolean evaluateDiscriminator(
      String fullTopic,
      String wildcardTopic,
      Selector discriminatorTree)
    throws SIDiscriminatorSyntaxException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc,
                    "evaluateDiscriminator",
                    new Object[] { fullTopic, wildcardTopic, discriminatorTree });
  
      Object result = null;
      boolean discriminatorMatches = false;
  
      // Use the dummy evaluation cache, we don't need one here as we're not
      // searching the MatchSpace
      EvalCache cache = EvalCache.DUMMY;
  
      try
      {
        Evaluator evaluator = Matching.getEvaluator();
  
        MatchSpaceKey msk = new DiscriminatorMatchSpaceKey(fullTopic);
  
        if(discriminatorTree == null)
          discriminatorTree = parseDiscriminator(wildcardTopic);
  
        // Evaluate message against discriminator tree
        result = evaluator.eval(discriminatorTree, msk, cache, null, false);
        if (result != null && ((Boolean) result).booleanValue())
        {
          discriminatorMatches = true;
        }
      }
      catch (BadMessageFormatMatchingException qex)
      {
        FFDCFilter.processException(
          qex,
          "com.ibm.ws.sib.processor.matching.MessageProcessorMatching.evaluateDiscriminator",
          "1:2623:1.117.1.11",
          this);
  
        SibTr.exception(tc, qex);
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "evaluateDiscriminator", "SICoreException");
  
        SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0002",
          new Object[] {
            "com.ibm.ws.sib.processor.matching.MessageProcessorMatching",
            "1:2633:1.117.1.11",
            qex });
  
        // For now, I'll throw a core exception, but in due course this (or something with a
        // better name) will be externalised in the Core API.
        throw new SIErrorException(
          nls.getFormattedMessage(
            "INTERNAL_MESSAGING_ERROR_CWSIP0002",
            new Object[] {
              "com.ibm.ws.sib.processor.matching.MessageProcessorMatching",
              "1:2643:1.117.1.11",
              qex },
            null),
          qex);
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "evaluateDiscriminator", Boolean.valueOf(discriminatorMatches));
      return discriminatorMatches;
    }