public bool Match(CodeExpression expression)
        {
            ContainsString other = expression as ContainsString;

            return((other != null) &&
                   RuleExpressionWalker.Match(_toLowerMethodInvocationExpression, other._toLowerMethodInvocationExpression) &&
                   RuleExpressionWalker.Match(_toStringMethodInvocationExpression, other._toStringMethodInvocationExpression) &&
                   RuleExpressionWalker.Match(_containsMethodInvocationExpression, other._containsMethodInvocationExpression));
        }
        public CodeExpression Clone()
        {
            ContainsString result = new ContainsString();

            result._toStringMethodInvocationExpression = RuleExpressionWalker.Clone(_toStringMethodInvocationExpression);
            result._toLowerMethodInvocationExpression  = RuleExpressionWalker.Clone(_toLowerMethodInvocationExpression);
            result._containsMethodInvocationExpression = RuleExpressionWalker.Clone(_containsMethodInvocationExpression);

            return(result);
        }