예제 #1
0
        internal override void Eval(ProcessingContext context)
        {
            Fx.Assert(null != context, "");

            switch (this.functionID)
            {
            default:
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException(SR.GetString(SR.QueryNotImplemented, this.name)));

            case XPathFunctionID.IterateSequences:
                XPathFunction.IterateAndPushSequences(context);
                break;

            case XPathFunctionID.Count:
                XPathFunction.NodesetCount(context);
                break;

            case XPathFunctionID.Position:
                XPathFunction.NodesetPosition(context);
                break;

            case XPathFunctionID.Last:
                XPathFunction.NodesetLast(context);
                break;

            case XPathFunctionID.LocalName:
                XPathFunction.NodesetLocalName(context);
                break;

            case XPathFunctionID.LocalNameDefault:
                XPathFunction.NodesetLocalNameDefault(context);
                break;

            case XPathFunctionID.Name:
                XPathFunction.NodesetName(context);
                break;

            case XPathFunctionID.NameDefault:
                XPathFunction.NodesetNameDefault(context);
                break;

            case XPathFunctionID.NamespaceUri:
                XPathFunction.NodesetNamespaceUri(context);
                break;

            case XPathFunctionID.NamespaceUriDefault:
                XPathFunction.NodesetNamespaceUriDefault(context);
                break;

            case XPathFunctionID.Boolean:
                XPathFunction.BooleanBoolean(context);
                break;

            case XPathFunctionID.False:
                XPathFunction.BooleanFalse(context);
                break;

            case XPathFunctionID.True:
                XPathFunction.BooleanTrue(context);
                break;

            case XPathFunctionID.Not:
                XPathFunction.BooleanNot(context);
                break;

            case XPathFunctionID.Lang:
                XPathFunction.BooleanLang(context);
                break;

            case XPathFunctionID.Contains:
                XPathFunction.StringContains(context);
                break;

            case XPathFunctionID.Number:
                XPathFunction.NumberNumber(context);
                break;

            case XPathFunctionID.NumberDefault:
                XPathFunction.NumberNumberDefault(context);
                break;

            case XPathFunctionID.Ceiling:
                XPathFunction.NumberCeiling(context);
                break;

            case XPathFunctionID.Floor:
                XPathFunction.NumberFloor(context);
                break;

            case XPathFunctionID.Round:
                XPathFunction.NumberRound(context);
                break;

            case XPathFunctionID.Sum:
                XPathFunction.NumberSum(context);
                break;

            case XPathFunctionID.String:
                XPathFunction.StringString(context);
                break;

            case XPathFunctionID.StringDefault:
                XPathFunction.StringStringDefault(context);
                break;

            case XPathFunctionID.ConcatTwo:
                XPathFunction.StringConcatTwo(context);
                break;

            case XPathFunctionID.ConcatThree:
                XPathFunction.StringConcatThree(context);
                break;

            case XPathFunctionID.ConcatFour:
                XPathFunction.StringConcatFour(context);
                break;

            case XPathFunctionID.StartsWith:
                XPathFunction.StringStartsWith(context);
                break;

            case XPathFunctionID.StringLength:
                XPathFunction.StringLength(context);
                break;

            case XPathFunctionID.StringLengthDefault:
                XPathFunction.StringLengthDefault(context);
                break;

            case XPathFunctionID.SubstringBefore:
                XPathFunction.SubstringBefore(context);
                break;

            case XPathFunctionID.SubstringAfter:
                XPathFunction.SubstringAfter(context);
                break;

            case XPathFunctionID.Substring:
                XPathFunction.Substring(context);
                break;

            case XPathFunctionID.SubstringLimit:
                XPathFunction.SubstringLimit(context);
                break;

            case XPathFunctionID.Translate:
                XPathFunction.Translate(context);
                break;

            case XPathFunctionID.NormalizeSpace:
                XPathFunction.NormalizeSpace(context);
                break;

            case XPathFunctionID.NormalizeSpaceDefault:
                XPathFunction.NormalizeSpaceDefault(context);
                break;
            }
        }
예제 #2
0
 internal static void StringLengthDefault(ProcessingContext context)
 {
     XPathFunction.IterateAndPushSequences(context);
     XPathFunction.ConvertFirstArg(context, ValueDataType.String);
     XPathFunction.StringLength(context);
 }