/// <summary>
        /// Creates a new N1QlFunctionMethodCallTranslator for a given method and <see cref="N1QlFunctionAttribute"/>.
        /// </summary>
        /// <param name="methodInfo">Method call to be translated.  Must be a static method.</param>
        /// <param name="attribute"><see cref="N1QlFunctionAttribute"/> that defines the translation.</param>
        public N1QlFunctionMethodCallTranslator(MethodInfo methodInfo, N1QlFunctionAttribute attribute)
        {
            if (methodInfo == null)
            {
                throw new ArgumentNullException("methodInfo");
            }
            if (!methodInfo.IsStatic)
            {
                throw new ArgumentException("Only static methods are supported", "methodInfo");
            }
            if (attribute == null)
            {
                throw new ArgumentNullException("attribute");
            }

            MethodInfo       = methodInfo;
            N1QlFunctionName = attribute.N1QlFunctionName;
        }
        /// <summary>
        /// Creates a new N1QlFunctionMethodCallTranslator for a given method and <see cref="N1QlFunctionAttribute"/>.
        /// </summary>
        /// <param name="methodInfo">Method call to be translated.  Must be a static method.</param>
        /// <param name="attribute"><see cref="N1QlFunctionAttribute"/> that defines the translation.</param>
        public N1QlFunctionMethodCallTranslator(MethodInfo methodInfo, N1QlFunctionAttribute attribute)
        {
            if (methodInfo == null)
            {
                throw new ArgumentNullException("methodInfo");
            }
            if (!methodInfo.IsStatic)
            {
                throw new ArgumentException("Only static methods are supported", "methodInfo");
            }
            if (attribute == null)
            {
                throw new ArgumentNullException("attribute");
            }

            MethodInfo = methodInfo;
            N1QlFunctionName = attribute.N1QlFunctionName;
        }