/// <summary>
        /// Initializes a new instance of the <see cref="FunctionDescriptor"/> class.
        /// </summary>
        /// <param name="funcDescParams">Function descriptor parameters.</param>
        public FunctionDescriptor(FunctionDescriptorParams funcDescParams)
        {
            if (!String.IsNullOrEmpty(funcDescParams.Summary))
            {
                summary = funcDescParams.Summary;
            }

            pathManager  = funcDescParams.PathManager;
            Assembly     = funcDescParams.Assembly;
            ClassName    = funcDescParams.ClassName;
            FunctionName = funcDescParams.FunctionName;

            Parameters = funcDescParams.Parameters.Select(
                x =>
            {
                x.UpdateFunctionDescriptor(this);
                return(x);
            }).ToList();

            var type            = funcDescParams.FunctionType;
            var inputParameters = new List <Tuple <string, string> >();

            //Add instance parameter as one of the inputs for instance method as well as properties.
            if (type == FunctionType.InstanceMethod || type == FunctionType.InstanceProperty)
            {
                inputParameters.Add(Tuple.Create(UnqualifedClassName.ToLower(), UnqualifedClassName));
            }

            if (Parameters.Any())
            {
                inputParameters.AddRange(Parameters.Select(
                                             par => Tuple.Create(par.Name, par.DisplayTypeName)));
            }

            InputParameters       = inputParameters;
            ReturnType            = funcDescParams.ReturnType;
            Type                  = type;
            ReturnKeys            = funcDescParams.ReturnKeys;
            IsVarArg              = funcDescParams.IsVarArg;
            IsVisibleInLibrary    = funcDescParams.IsVisibleInLibrary;
            ObsoleteMessage       = funcDescParams.ObsoleteMsg;
            CanUpdatePeriodically = funcDescParams.CanUpdatePeriodically;
            IsBuiltIn             = funcDescParams.IsBuiltIn;
            IsPackageMember       = funcDescParams.IsPackageMember;
            IsLacingDisabled      = funcDescParams.IsLacingDisabled;
        }
Exemple #2
0
        public FunctionDescriptor(FunctionDescriptorParams funcDescParams)
        {
            summary      = funcDescParams.Summary;
            pathManager  = funcDescParams.PathManager;
            Assembly     = funcDescParams.Assembly;
            ClassName    = funcDescParams.ClassName;
            FunctionName = funcDescParams.FunctionName;

            Parameters = funcDescParams.Parameters.Select(
                x =>
            {
                x.UpdateFunctionDescriptor(this);
                return(x);
            }).ToList();

            var type            = funcDescParams.FunctionType;
            var inputParameters = new List <Tuple <string, string> >();

            //Add instance parameter as one of the inputs for instance method as well as properties.
            if (type == FunctionType.InstanceMethod || type == FunctionType.InstanceProperty)
            {
                inputParameters.Add(Tuple.Create(UnqualifedClassName.ToLower(), UnqualifedClassName));
            }

            if (Parameters.Any())
            {
                inputParameters.AddRange(Parameters.Select(
                                             par => Tuple.Create(par.Name, par.DisplayTypeName)));
            }

            InputParameters = inputParameters;

            //Not sure why returnType for constructors are var[]..[], use UnqualifiedClassName
            ReturnType = (type == FunctionType.Constructor) ?
                         UnqualifedClassName :
                         funcDescParams.ReturnType.ToShortString();

            Type                  = type;
            ReturnKeys            = funcDescParams.ReturnKeys;
            IsVarArg              = funcDescParams.IsVarArg;
            IsVisibleInLibrary    = funcDescParams.IsVisibleInLibrary;
            ObsoleteMessage       = funcDescParams.ObsoleteMsg;
            CanUpdatePeriodically = funcDescParams.CanUpdatePeriodically;
            IsBuiltIn             = funcDescParams.IsBuiltIn;
        }