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

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

            var visitor = new SubQueryFindingExpressionVisitor(nodeTypeProvider);

            return(visitor.Visit(expressionTree));
        }