Function.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / Function.cs / 1 / Function.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
 
namespace MS.Internal.Xml.XPath { 
    using System;
    using System.Xml; 
    using System.Xml.XPath;
    using System.Diagnostics;
    using System.Collections;
 
    internal class Function : AstNode {
        public enum FunctionType { 
            FuncLast, 
            FuncPosition,
            FuncCount, 
            FuncID,
            FuncLocalName,
            FuncNameSpaceUri,
            FuncName, 
            FuncString,
            FuncBoolean, 
            FuncNumber, 
            FuncTrue,
            FuncFalse, 
            FuncNot,
            FuncConcat,
            FuncStartsWith,
            FuncContains, 
            FuncSubstringBefore,
            FuncSubstringAfter, 
            FuncSubstring, 
            FuncStringLength,
            FuncNormalize, 
            FuncTranslate,
            FuncLang,
            FuncSum,
            FuncFloor, 
            FuncCeiling,
            FuncRound, 
            FuncUserDefined, 
        };
 
        private FunctionType functionType;
        private ArrayList argumentList;

        private string name = null; 
        private string prefix = null;
 
        public Function(FunctionType ftype, ArrayList argumentList) { 
            this.functionType = ftype;
            this.argumentList = new ArrayList(argumentList); 
        }

        public Function(string prefix, string name, ArrayList argumentList) {
            this.functionType = FunctionType.FuncUserDefined; 
            this.prefix = prefix;
            this.name = name; 
            this.argumentList = new ArrayList(argumentList); 
        }
 
        public Function(FunctionType ftype) {
            this.functionType = ftype;
        }
 
        public Function(FunctionType ftype, AstNode arg) {
            functionType = ftype; 
            argumentList = new ArrayList(); 
            argumentList.Add(arg);
        } 

        public override AstType Type { get {return  AstType.Function;} }

        public override XPathResultType ReturnType { 
            get {
                return ReturnTypes[(int) functionType]; 
            } 
        }
 
        public FunctionType TypeOfFunction { get { return functionType; } }
        public ArrayList    ArgumentList   { get { return argumentList; } }
        public string       Prefix         { get { return prefix;       } }
        public string       Name           { get { return name;         } } 

        internal static XPathResultType[] ReturnTypes = { 
            /* FunctionType.FuncLast            */ XPathResultType.Number , 
            /* FunctionType.FuncPosition        */ XPathResultType.Number ,
            /* FunctionType.FuncCount           */ XPathResultType.Number , 
            /* FunctionType.FuncID              */ XPathResultType.NodeSet,
            /* FunctionType.FuncLocalName       */ XPathResultType.String ,
            /* FunctionType.FuncNameSpaceUri    */ XPathResultType.String ,
            /* FunctionType.FuncName            */ XPathResultType.String , 
            /* FunctionType.FuncString          */ XPathResultType.String ,
            /* FunctionType.FuncBoolean         */ XPathResultType.Boolean, 
            /* FunctionType.FuncNumber          */ XPathResultType.Number , 
            /* FunctionType.FuncTrue            */ XPathResultType.Boolean,
            /* FunctionType.FuncFalse           */ XPathResultType.Boolean, 
            /* FunctionType.FuncNot             */ XPathResultType.Boolean,
            /* FunctionType.FuncConcat          */ XPathResultType.String ,
            /* FunctionType.FuncStartsWith      */ XPathResultType.Boolean,
            /* FunctionType.FuncContains        */ XPathResultType.Boolean, 
            /* FunctionType.FuncSubstringBefore */ XPathResultType.String ,
            /* FunctionType.FuncSubstringAfter  */ XPathResultType.String , 
            /* FunctionType.FuncSubstring       */ XPathResultType.String , 
            /* FunctionType.FuncStringLength    */ XPathResultType.Number ,
            /* FunctionType.FuncNormalize       */ XPathResultType.String , 
            /* FunctionType.FuncTranslate       */ XPathResultType.String ,
            /* FunctionType.FuncLang            */ XPathResultType.Boolean,
            /* FunctionType.FuncSum             */ XPathResultType.Number ,
            /* FunctionType.FuncFloor           */ XPathResultType.Number , 
            /* FunctionType.FuncCeiling         */ XPathResultType.Number ,
            /* FunctionType.FuncRound           */ XPathResultType.Number , 
            /* FunctionType.FuncUserDefined     */ XPathResultType.Any 
        };
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK