//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // // [....] //------------------------------------------------------------------------------ using System; using System.Diagnostics; namespace System.Xml.Xsl.Qil { /// /// View over a Qil parameter node. /// internal class QilParameter : QilIterator { private QilNode name; //----------------------------------------------- // Constructor //----------------------------------------------- /// /// Construct a parameter /// public QilParameter(QilNodeType nodeType, QilNode defaultValue, QilNode name, XmlQueryType xmlType) : base(nodeType, defaultValue) { this.name = name; this.xmlType = xmlType; } //----------------------------------------------- // IList methods -- override //----------------------------------------------- public override int Count { get { return 2; } } public override QilNode this[int index] { get { switch (index) { case 0: return Binding; case 1: return this.name; default: throw new IndexOutOfRangeException(); } } set { switch (index) { case 0: Binding = value; break; case 1: this.name = value; break; default: throw new IndexOutOfRangeException(); } } } //----------------------------------------------- // QilParameter methods //----------------------------------------------- /// /// Default value expression of this parameter (may be null). /// public QilNode DefaultValue { get { return Binding; } set { Binding = value; } } /// /// Name of this parameter (may be null). /// public QilName Name { get { return (QilName) this.name; } set { this.name = value; } } } }