SrgsOneOf.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Recognition / SrgsGrammar / SrgsOneOf.cs / 1 / SrgsOneOf.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// 
// Description: 
//
// History: 
//		5/1/2004	[....]		Created from the Kurosawa Code
//---------------------------------------------------------------------------
using System;
using System.Collections; 
using System.Collections.Generic;
using System.Collections.ObjectModel; 
using System.Diagnostics; 
using System.Globalization;
using System.Speech.Internal; 
using System.Speech.Internal.SrgsParser;
using System.Text;
using System.Xml;
 
namespace System.Speech.Recognition.SrgsGrammar
{ 
    /// TODOC <_include file='doc\OneOf.uex' path='docs/doc[@for="OneOf"]/*' /> 
    [Serializable]
    [DebuggerDisplay ("{DebuggerDisplayString ()}")] 
    [DebuggerTypeProxy (typeof (OneOfDebugDisplay))]
    public class SrgsOneOf : SrgsElement, IOneOf
    {
        //******************************************************************* 
        //
        // Constructors 
        // 
        //*******************************************************************
 
        #region Constructors

        /// TODOC <_include file='doc\OneOf.uex' path='docs/doc[@for="OneOf.OneOf1"]/*' />
        public SrgsOneOf () 
        {
        } 
 
        /// TODOC <_include file='doc\OneOf.uex' path='docs/doc[@for="OneOf.OneOf2"]/*' />
        public SrgsOneOf (params string [] items) 
            : this ()
        {
            Helpers.ThrowIfNull (items, "items");
 
            for (int i = 0; i < items.Length; i++)
            { 
                if (items [i] == null) 
                {
                    throw new ArgumentNullException ("items", SR.Get (SRID.ParamsEntryNullIllegal)); 
                }

                _items.Add (new SrgsItem (items [i]));
            } 
        }
 
        /// TODOC <_include file='doc\OneOf.uex' path='docs/doc[@for="OneOf.OneOf3"]/*' /> 
        public SrgsOneOf (params SrgsItem [] items)
            : this () 
        {
            Helpers.ThrowIfNull (items, "items");

            for (int i = 0; i < items.Length; i++) 
            {
                SrgsItem item = items [i]; 
                if (item == null) 
                {
                    throw new ArgumentNullException ("items", SR.Get (SRID.ParamsEntryNullIllegal)); 
                }

                _items.Add (item);
            } 
        }
 
        #endregion 

        //******************************************************************** 
        //
        // Public Methods
        //
        //******************************************************************* 

        #region public Method 
 
        /// 
        /// TODOC 
        /// 
        /// 
        public void Add (SrgsItem item)
        { 
            Helpers.ThrowIfNull (item, "item");
 
            Items.Add (item); 
        }
 
        #endregion

        //********************************************************************
        // 
        // Public Properties
        // 
        //******************************************************************** 

        #region public Properties 

        //

        public Collection Items 
        {
            get 
            { 
                return _items;
            } 
        }

        #endregion
 
        //*******************************************************************
        // 
        // Internal Methods 
        //
        //******************************************************************** 

        #region internal Methods

        internal override void WriteSrgs (XmlWriter writer) 
        {
            // Write ... 
            writer.WriteStartElement ("one-of"); 
            foreach (SrgsItem element in _items)
            { 
                element.WriteSrgs (writer);
            }

            writer.WriteEndElement (); 
        }
 
        internal override string DebuggerDisplayString () 
        {
            StringBuilder sb = new StringBuilder ("SrgsOneOf Count = "); 
            sb.Append (_items.Count);
            return sb.ToString ();
        }
 
        #endregion
 
        //******************************************************************* 
        //
        // Protected Properties 
        //
        //*******************************************************************

        #region Protected Properties 

        ///  
        /// Allows the Srgs Element base class to implement 
        /// features requiring recursion in the elements tree.
        ///  
        /// 
        internal override SrgsElement [] Children
        {
            get 
            {
                SrgsElement [] elements = new SrgsElement [_items.Count]; 
                int i = 0; 
                foreach (SrgsItem item in _items)
                { 
                    elements [i++] = item;
                }
                return elements;
            } 
        }
 
        #endregion 

        //******************************************************************* 
        //
        // Private Fields
        //
        //******************************************************************** 

        #region Private Fields 
 
        private SrgsItemList _items = new SrgsItemList ();
 
        #endregion

        //*******************************************************************
        // 
        // Private Types
        // 
        //******************************************************************** 

        #region Private Types 

        // Used by the debugger display attribute
        internal class OneOfDebugDisplay
        { 
            public OneOfDebugDisplay (SrgsOneOf oneOf)
            { 
                _items = oneOf._items; 
            }
 
            [DebuggerBrowsable (DebuggerBrowsableState.RootHidden)]
            public SrgsItem [] AKeys
            {
                get 
                {
                    SrgsItem [] items = new SrgsItem [_items.Count]; 
                    for (int i = 0; i < _items.Count; i++) 
                    {
                        items [i] = _items [i]; 
                    }
                    return items;
                }
            } 

            private Collection _items; 
        } 

        #endregion 
    }
}

// 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