The Labs \ Source Viewer \ SSCLI \ System.Xml.Xsl.Qil \ QilParameter

  1. //------------------------------------------------------------------------------
  2. // <copyright file="QilParameter.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. //------------------------------------------------------------------------------
  15. using System;
  16. using System.Diagnostics;
  17. namespace System.Xml.Xsl.Qil
  18. {
  19.    
  20.     /// <summary>
  21.     /// View over a Qil parameter node.
  22.     /// </summary>
  23.     internal class QilParameter : QilIterator
  24.     {
  25.         private QilNode name;
  26.        
  27.         //-----------------------------------------------
  28.         // Constructor
  29.         //-----------------------------------------------
  30.        
  31.         /// <summary>
  32.         /// Construct a parameter
  33.         /// </summary>
  34.         public QilParameter(QilNodeType nodeType, QilNode defaultValue, QilNode name, XmlQueryType xmlType) : base(nodeType, defaultValue)
  35.         {
  36.             this.name = name;
  37.             this.xmlType = xmlType;
  38.         }
  39.        
  40.        
  41.         //-----------------------------------------------
  42.         // IList<QilNode> methods -- override
  43.         //-----------------------------------------------
  44.        
  45.         public override int Count {
  46.             get { return 2; }
  47.         }
  48.        
  49.         public override QilNode this[int index]
  50.         {
  51.             get {
  52.                 switch (index) {
  53.                     case 0:
  54.                         return Binding;
  55.                     case 1:
  56.                         return this.name;
  57.                     default:
  58.                         throw new IndexOutOfRangeException();
  59.                         break;
  60.                 }
  61.             }
  62.             set {
  63.                 switch (index) {
  64.                     case 0:
  65.                         Binding = value;
  66.                         break;
  67.                     case 1:
  68.                         this.name = value;
  69.                         break;
  70.                     default:
  71.                         throw new IndexOutOfRangeException();
  72.                         break;
  73.                 }
  74.             }
  75.         }
  76.        
  77.        
  78.         //-----------------------------------------------
  79.         // QilParameter methods
  80.         //-----------------------------------------------
  81.        
  82.         /// <summary>
  83.         /// Default value expression of this parameter (may be null).
  84.         /// </summary>
  85.         public QilNode DefaultValue {
  86.             get { return Binding; }
  87.             set { Binding = value; }
  88.         }
  89.        
  90.         /// <summary>
  91.         /// Name of this parameter (may be null).
  92.         /// </summary>
  93.         public QilName Name {
  94.             get { return (QilName)this.name; }
  95.             set { this.name = value; }
  96.         }
  97.     }
  98. }

Developer Fusion