SemanticKeyElement.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Internal / GrammarBuilding / SemanticKeyElement.cs / 1 / SemanticKeyElement.cs

                            //------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------- 

using System.Collections.Generic; 
using System.Speech.Recognition; 
using System.Speech.Internal.SrgsParser;
using System.Text; 

namespace System.Speech.Internal.GrammarBuilding
{
    ///  
    ///
    ///  
    internal sealed class SemanticKeyElement : BuilderElements 
    {
 
        //*******************************************************************
        //
        // Constructors
        // 
        //*******************************************************************
 
        #region Constructors 

        ///  
        ///
        /// 
        /// 
        internal SemanticKeyElement (string semanticKey) 
        {
            _semanticKey = semanticKey; 
            RuleElement rule = new RuleElement (semanticKey); 
            _ruleRef = new RuleRefElement (rule, _semanticKey);
            Items.Add (rule); 
            Items.Add (_ruleRef);
        }

        #endregion 

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

        #region Public Methods
 
        /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.Equals"]/*' />
        public override bool Equals (object obj) 
        { 
            SemanticKeyElement refObj = obj as SemanticKeyElement;
            if (refObj == null) 
            {
                return false;
            }
            if (!base.Equals (obj)) 
            {
                return false; 
            } 
            // No need to check for the equality on _ruleRef. The children are in the Items, not the underlying rule
            return _semanticKey == refObj._semanticKey; 
        }

        /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.GetHashCode"]/*' />
        public override int GetHashCode () 
        {
            return base.GetHashCode (); 
        } 

        #endregion 

        //********************************************************************
        //
        // Internal Methods 
        //
        //******************************************************************** 
 
        #region Internal Methods
 
        /// 
        ///
        /// 
        ///  
        new internal void Add (string phrase)
        { 
            _ruleRef.Add (new GrammarBuilderPhrase (phrase)); 
        }
 
        /// 
        ///
        /// 
        ///  
        new internal void Add (GrammarBuilder builder)
        { 
            foreach (GrammarBuilderBase item in builder.InternalBuilder.Items) 
            {
                _ruleRef.Add (item); 
            }
        }

        ///  
        ///
        ///  
        ///  
        internal override GrammarBuilderBase Clone ()
        { 
            SemanticKeyElement semanticKeyElement = new SemanticKeyElement (_semanticKey);
            semanticKeyElement._ruleRef.CloneItems (_ruleRef);
            return semanticKeyElement;
        } 

        ///  
        /// 
        /// 
        ///  
        /// 
        /// 
        /// 
        ///  
        internal override IElement CreateElement (IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds)
        { 
            // Create the rule associated with this key 
            _ruleRef.Rule.CreateElement (elementFactory, parent, rule, ruleIds);
 
            // Create the ruleRef
            IElement ruleRef = _ruleRef.CreateElement (elementFactory, parent, rule, ruleIds);

            return ruleRef; 
        }
 
        #endregion 

 
        //*******************************************************************
        //
        // Internal Properties
        // 
        //********************************************************************
 
        #region Internal Properties 

        override internal string DebugSummary 
        {
            get
            {
                return _ruleRef.Rule.DebugSummary; 
            }
        } 
 
        #endregion
 
        //*******************************************************************
        //
        // Private Fields
        // 
        //*******************************************************************
 
        #region Private Fields 

        ///  
        ///
        /// 
        private readonly string _semanticKey;
        private readonly RuleRefElement _ruleRef; 

        #endregion 
 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------- 

using System.Collections.Generic; 
using System.Speech.Recognition; 
using System.Speech.Internal.SrgsParser;
using System.Text; 

namespace System.Speech.Internal.GrammarBuilding
{
    ///  
    ///
    ///  
    internal sealed class SemanticKeyElement : BuilderElements 
    {
 
        //*******************************************************************
        //
        // Constructors
        // 
        //*******************************************************************
 
        #region Constructors 

        ///  
        ///
        /// 
        /// 
        internal SemanticKeyElement (string semanticKey) 
        {
            _semanticKey = semanticKey; 
            RuleElement rule = new RuleElement (semanticKey); 
            _ruleRef = new RuleRefElement (rule, _semanticKey);
            Items.Add (rule); 
            Items.Add (_ruleRef);
        }

        #endregion 

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

        #region Public Methods
 
        /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.Equals"]/*' />
        public override bool Equals (object obj) 
        { 
            SemanticKeyElement refObj = obj as SemanticKeyElement;
            if (refObj == null) 
            {
                return false;
            }
            if (!base.Equals (obj)) 
            {
                return false; 
            } 
            // No need to check for the equality on _ruleRef. The children are in the Items, not the underlying rule
            return _semanticKey == refObj._semanticKey; 
        }

        /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.GetHashCode"]/*' />
        public override int GetHashCode () 
        {
            return base.GetHashCode (); 
        } 

        #endregion 

        //********************************************************************
        //
        // Internal Methods 
        //
        //******************************************************************** 
 
        #region Internal Methods
 
        /// 
        ///
        /// 
        ///  
        new internal void Add (string phrase)
        { 
            _ruleRef.Add (new GrammarBuilderPhrase (phrase)); 
        }
 
        /// 
        ///
        /// 
        ///  
        new internal void Add (GrammarBuilder builder)
        { 
            foreach (GrammarBuilderBase item in builder.InternalBuilder.Items) 
            {
                _ruleRef.Add (item); 
            }
        }

        ///  
        ///
        ///  
        ///  
        internal override GrammarBuilderBase Clone ()
        { 
            SemanticKeyElement semanticKeyElement = new SemanticKeyElement (_semanticKey);
            semanticKeyElement._ruleRef.CloneItems (_ruleRef);
            return semanticKeyElement;
        } 

        ///  
        /// 
        /// 
        ///  
        /// 
        /// 
        /// 
        ///  
        internal override IElement CreateElement (IElementFactory elementFactory, IElement parent, IRule rule, IdentifierCollection ruleIds)
        { 
            // Create the rule associated with this key 
            _ruleRef.Rule.CreateElement (elementFactory, parent, rule, ruleIds);
 
            // Create the ruleRef
            IElement ruleRef = _ruleRef.CreateElement (elementFactory, parent, rule, ruleIds);

            return ruleRef; 
        }
 
        #endregion 

 
        //*******************************************************************
        //
        // Internal Properties
        // 
        //********************************************************************
 
        #region Internal Properties 

        override internal string DebugSummary 
        {
            get
            {
                return _ruleRef.Rule.DebugSummary; 
            }
        } 
 
        #endregion
 
        //*******************************************************************
        //
        // Private Fields
        // 
        //*******************************************************************
 
        #region Private Fields 

        ///  
        ///
        /// 
        private readonly string _semanticKey;
        private readonly RuleRefElement _ruleRef; 

        #endregion 
 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

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