public static Expression Process (Expression expressionTree, INodeTypeProvider nodeTypeProvider)
    {
      ArgumentUtility.CheckNotNull ("expressionTree", expressionTree);
      ArgumentUtility.CheckNotNull ("nodeTypeProvider", nodeTypeProvider);

      var visitor = new SubQueryFindingExpressionTreeVisitor (nodeTypeProvider);
      return visitor.VisitExpression (expressionTree);
    }
        public static Expression Process(Expression expressionTree, INodeTypeProvider nodeTypeProvider)
        {
            ArgumentUtility.CheckNotNull("expressionTree", expressionTree);
            ArgumentUtility.CheckNotNull("nodeTypeProvider", nodeTypeProvider);

            var visitor = new SubQueryFindingExpressionTreeVisitor(nodeTypeProvider);

            return(visitor.VisitExpression(expressionTree));
        }