private IMessage InternalMatch()

in src/main/csharp/Readers/BySelectorMessageReader.cs [232:268]


        private IMessage InternalMatch(Message message, bool convertBody)
        {
            if(messageConverterEx == null)
            {
                IMessage nmsMessage = messageConverter.ToNmsMessage(message);

                evaluationContext.Message = nmsMessage;

                if(selectionExpression.Matches(evaluationContext))
                {
                    return nmsMessage;
                }
            }
            else
            {
                // This version converts the message body only for those
                // messages matching the selection criteria.
                // Relies on MessageConverterEx for partial conversions.
                IMessage nmsMessage = messageConverterEx.ToNmsMessage(
                    message, false);

                evaluationContext.Message = nmsMessage;

                if(selectionExpression.Matches(evaluationContext))
                {
                    if(convertBody)
                    {
                        messageConverterEx.ConvertMessageBodyToNMS(
                            message, nmsMessage);
                    }

                    return nmsMessage;
                }
            }

            return null;
        }