2016-08-03 10:59:49 +00:00
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
// <copyright file="QilParameter.cs" company="Microsoft">
|
|
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
// </copyright>
|
2017-08-21 15:34:15 +00:00
|
|
|
// <owner current="true" primary="true">Microsoft</owner>
|
2016-08-03 10:59:49 +00:00
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
using System;
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
|
|
|
namespace System.Xml.Xsl.Qil {
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// View over a Qil parameter node.
|
|
|
|
/// </summary>
|
|
|
|
internal class QilParameter : QilIterator {
|
|
|
|
private QilNode name;
|
|
|
|
|
|
|
|
//-----------------------------------------------
|
|
|
|
// Constructor
|
|
|
|
//-----------------------------------------------
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Construct a parameter
|
|
|
|
/// </summary>
|
|
|
|
public QilParameter(QilNodeType nodeType, QilNode defaultValue, QilNode name, XmlQueryType xmlType) : base(nodeType, defaultValue) {
|
|
|
|
this.name = name;
|
|
|
|
this.xmlType = xmlType;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------
|
|
|
|
// IList<QilNode> 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
|
|
|
|
//-----------------------------------------------
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Default value expression of this parameter (may be null).
|
|
|
|
/// </summary>
|
|
|
|
public QilNode DefaultValue {
|
|
|
|
get { return Binding; }
|
|
|
|
set { Binding = value; }
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Name of this parameter (may be null).
|
|
|
|
/// </summary>
|
|
|
|
public QilName Name {
|
|
|
|
get { return (QilName) this.name; }
|
|
|
|
set { this.name = value; }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|